using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web.Mvc; using System.Xml.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.BusinessLogic.Security; using Kreta.BusinessLogic.Utils; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Resources; using Kreta.Web.Areas.Adminisztracio.Models; using Kreta.Web.Controllers.Logic; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Modal; using Kreta.Web.Models; using Kreta.Web.Models.Builder; using Kreta.Web.Security; namespace Kreta.Web.Controllers { [MvcRoleClaimsAuthorize(true)] public class LayoutController : Controller { public static bool SuccessFeedBackWindowNeeded => new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue(RendszerBeallitasTipusEnum.SuccessFeedBack_Disable); public JsonResult LogOut() { MasterLayoutLogic.LogOut(); var loginUrl = Url.Action("Index", "Login", new { Area = "Adminisztracio" }); /* return Redirect(loginUrl); kellene majd használni */ return Json(new { Url = loginUrl }); } [HttpPost] public ActionResult Excel_Export_Save(string contentType, string base64, string fileName) { var fileContents = Convert.FromBase64String(base64); return File(fileContents, contentType, fileName); } [HttpPost] public ActionResult Pdf_Export_Save(string contentType, string base64, string fileName) { var fileContents = Convert.FromBase64String(base64); return File(fileContents, contentType, fileName); } public ActionResult GetRemainingTime() { return Content(SessionHandler.GetRemainingTime().ToString()); } public void ExtendSessionTime() { /*Funkciója van! ne töröld ki.*/ /*Minden hívás frissíti az időt ez nem csinál semmít ez csak azért kell hogy legyen mit hívni.*/ } public ActionResult GetLayoutInformation(string url) { var model = new LayoutModel(); var builder = new LayoutModelBuilder(); var olvasatlanUzenetekSzama = "0";//eugyintezesClient.GetOlvasatlanUzenetek(ClaimData.IntezmenyAzonosito, ClaimData.FelhasznaloId).ToString(); builder.SetBase(olvasatlanUzenetekSzama, model, url); return Json(model); } [HttpPost] [MvcValidateAjaxAntiForgeryToken] public void ClientError(ClientErrorModel clientError) { var error = new ClientError(clientError); #if !DEBUG Kreta.Framework.SDAServer.Instance.Logger.ExceptionThrown(error); #endif } [OutputCache(Duration = 800, VaryByParam = "SzerepkorId;FelhasznaloId;SelectedTanevId")] public ActionResult Menu(string SzerepkorId, string FelhasznaloId, int SelectedTanevId) { return PartialView("_NavigationBar"); } [HttpPost] public bool ChangeSelectedTanev(int selectedTanevId) { ClaimData.SelectedTanevID = selectedTanevId; var connectionType = ConnectionTypeExtensions.GetSessionConnectionType(); new AdminHelper(connectionType).RefreshUserContextSelectedTanev(); var tanevHelper = new TanevHelper(connectionType); if (!ClaimData.IsAdministrator && !ClaimData.IsArchivIntezmeny) { ClaimData.FelhasznaloId = tanevHelper.GetFelhasznaloIdBySelectedTanevIdAndFelhasznaloId(ClaimData.FelhasznaloId).First(x => x.TanevId == ClaimData.SelectedTanevID).FelhasznaloId; } List list = new List(); if (selectedTanevId == ClaimData.AktivTanevID.Value) { list = ParseSiteMapXml("activeyear"); } else if (ClaimData.KovTanevID.HasValue && selectedTanevId == ClaimData.KovTanevID.Value) { list = ParseSiteMapXml("nextyear"); } else { list = ParseSiteMapXml("prevyear"); } var intezmenyAdatok = new IntezmenyHelper(connectionType).GetIntezmenyiAdatok(); ClaimData.RefreshOrganizationFullAddress(intezmenyAdatok); ClaimData.OrganizationName = intezmenyAdatok.Nev; ClaimData.OrganizationShortName = intezmenyAdatok.RovidNev ?? string.Empty; ClaimData.OrganizationCode = intezmenyAdatok.OMKod; ClaimData.IsBeiratkozasVeglegesitve = intezmenyAdatok.IsBeiratkozasVeglegesitve; ClaimData.LicenceDatum = intezmenyAdatok.LicenceDatum; ClaimData.JustLEPOrganization = intezmenyAdatok.IsCsakLepKezelo; ClaimData.IsSzirIntezmeny = intezmenyAdatok.IsSzirIntezmeny; ClaimData.IsArchivIntezmeny = intezmenyAdatok.IsArchivIntezmeny; ClaimData.IsSzakkepzoIntezmeny = intezmenyAdatok.IsSzakkepzo; var selectedTanev = tanevHelper.GetTanevInfo(); ClaimData.IsSelectedTanev20_21OrLater = CommonUtils.IsSelectedTanev20_21OrLater(selectedTanev); ClaimData.IsSelectedTanev21_22OrLater = CommonUtils.IsSelectedTanev21_22OrLater(selectedTanev); ClaimData.IsSelectedTanevIsElozo = CommonUtils.IsSelectedTanevIsElozo(selectedTanev); var url = Request.UrlReferrer.AbsolutePath; var requestController = url.Substring(url.LastIndexOf("/") + 1); return list.Contains(requestController) || ClaimData.IsArchivIntezmeny; } public List ParseSiteMapXml(string attribute) { XElement xelement = XElement.Load(Server.MapPath("~/Menu/MapMvc.sitemap")); var xmlSelect = xelement.Descendants() .SelectMany(sel => sel.Elements()) .Where(sel => sel.Attribute("controller") != null && (sel.Attribute(attribute) != null || (sel.Attribute("nextyear") == null && sel.Attribute("activeyear") == null && sel.Attribute("prevyear") == null)) ) .Select(nd => new { controller = nd.Attribute("controller") }); List list = new List(); foreach (var item in xmlSelect) { list.Add(item.controller.Value); } return list; } public ActionResult DashboardUzenetPopup(int popupId, string egyediAzonosito) { if (popupId == 0 || string.IsNullOrWhiteSpace(egyediAzonosito)) { return new EmptyResult(); } var model = ConvertDashboardItemToModel(new AdminHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDashboardPopupUzenet(ClaimData.GondviseloId, popupId, egyediAzonosito).Tables[0].Rows[0]); return PartialView("DashboardUzenetPopup", model); } public ActionResult UpdateDashboardPopupClose(int popupId, string egyediAzonosito) { new AdminHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).UpdateDashboardPopupClose(popupId); // Következő bejelentkezésig nem dobjuk fel ezt a popup-ot: var popupCookie = HttpContext.Request.Cookies["DisplayedPopups"]; popupCookie.Value += "|" + egyediAzonosito; popupCookie.HttpOnly = true; popupCookie.Secure = true; popupCookie.SameSite = System.Web.SameSiteMode.None; HttpContext.Response.SetCookie(popupCookie); return new EmptyResult(); } public ActionResult UpdateDashboardPopupConfirm(int popupId) { new AdminHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).UpdateDashboardPopupConfirm(popupId); return new EmptyResult(); } public string UpdateDashboardPopupNext(int popupId) { var redirectUrl = new AdminHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).UpdateDashboardPopupNext(popupId); return redirectUrl; } private static AdminDashboardPopupItemModel ConvertDashboardItemToModel(DataRow row) { return new AdminDashboardPopupItemModel() { DashboardUzenetFelhasznaloId = SDAConvert.ToInt32(row["ID"]), EgyediAzonosito = SDAConvert.ToString(row["C_EGYEDIAZONOSITO"]), EgyediMuvelet = SDAConvert.ToString(row["C_EGYEDIMUVELET"]), Name = SDAConvert.ToString(row["C_CIM"]), Content = SDAConvert.ToString(row["C_TARTALOM"]), Type = (AdminDashboardTipusEnum)SDAConvert.ToInt32(row["C_DASHBOARDUZENETKATEGORIAID"]), MegjelenitesekSzama = SDAConvert.ToInt32(row["C_MEGJELENITESEKSZAMA"]), }; } [MvcRolePackageDenyAuthorize(KretaClaimPackages.Ellenorzo.ClaimValue)] public ActionResult OpenIskolaorUzenetKuldesPopup() { var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var telefonszam = helper.GetTelefonszamItemCoList(ClaimData.FelhasznaloId).FirstOrDefault(x => x.Alapertelmezett)?.Telefonszam ?? ""; var iskolaorLista = helper.GetIskolaor().Select(x => new IskolaorAdatModel { IskolaorID = x.Id, IskolaorTelefonszam = x.AlapertelmezettTelefonszam, IskolaorIdpAzonosito = x.IdpEgyediAzonosito.ToString(), IskolaorNev = x.Nev, }); var list = new List(); foreach (var item in iskolaorLista) { list.Add(new SelectListItem { Text = item.IskolaorNev, Value = item.IskolaorID.ToString(), }); } var model = new IskolaorPopupModel { IntezmenyAzonosito = ClaimData.IntezmenyAzonosito, KuldoID = ClaimData.FelhasznaloId.ToString(), KuldoNev = ClaimData.FelhasznaloNev, KuldoTelefonszam = telefonszam, IskolaorList = list, IskolaorAdatModelList = iskolaorLista.ToList(), IskolaorTelefonszam = list.Count == 1 ? iskolaorLista.First().IskolaorTelefonszam : null, Sablon1Button = new ModalButtonModel { Text = IskolaorResource.VeszelybenVan, EventName = "IskolaorHelper.addSablonText", Name = "sablon1", }, Sablon2Button = new ModalButtonModel { Text = IskolaorResource.BalesetTortent, EventName = "IskolaorHelper.addSablonText", Name = "sablon2", }, Sablon3Button = new ModalButtonModel { Text = IskolaorResource.TuzVan, EventName = "IskolaorHelper.addSablonText", Name = "sablon3", }, Sablon4Button = new ModalButtonModel { Text = IskolaorResource.VerekedesTortent, EventName = "IskolaorHelper.addSablonText", Name = "sablon4", }, Sablon5Button = new ModalButtonModel { Text = IskolaorResource.ADiakokOsszeverekedtek, EventName = "IskolaorHelper.addSablonText", Name = "sablon5", }, Sablon6Button = new ModalButtonModel { Text = IskolaorResource.Tanteremben, EventName = "IskolaorHelper.addSablonText", Name = "sablon6", }, Sablon7Button = new ModalButtonModel { Text = IskolaorResource.AzOsztalyteremben, EventName = "IskolaorHelper.addSablonText", Name = "sablon7", }, Sablon8Button = new ModalButtonModel { Text = IskolaorResource.AFolyoson, EventName = "IskolaorHelper.addSablonText", Name = "sablon8", }, Sablon9Button = new ModalButtonModel { Text = IskolaorResource.AzUdvaron, EventName = "IskolaorHelper.addSablonText", Name = "sablon9", }, Sablon10Button = new ModalButtonModel { Text = IskolaorResource.AzEmeleten, EventName = "IskolaorHelper.addSablonText", Name = "sablon10", }, Sablon11Button = new ModalButtonModel { Text = IskolaorResource.AzEtkezoben, EventName = "IskolaorHelper.addSablonText", Name = "sablon11", }, UzenetKuldesButton = new ModalButtonModel { Text = IskolaorResource.UzenetElkuldese, EventName = "IskolaorHelper.sendUzenet", Name = "uzenetElkuldeseButton", } }; return PartialView("IskolaorUzenetKuldesPopup", model); } public string GetBankszamlaVezetoBankNeve(string bankszamlaSzam) { return new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBankszamlaVezetoBankNeve(bankszamlaSzam); } } }