332 lines
14 KiB
C#
332 lines
14 KiB
C#
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<bool>(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<string> list = new List<string>();
|
|
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<string> 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<string> list = new List<string>();
|
|
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<SelectListItem>();
|
|
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);
|
|
}
|
|
}
|
|
}
|