using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Mime; using System.Text; using System.Web; using System.Web.Mvc; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Interfaces; using Kreta.BusinessLogic.Security; using Kreta.Core; using Kreta.Core.Iktato.Poszeidon.Factory.Interface; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework; using Kreta.Resources; using Kreta.Web.Areas.Intezmeny.ApiControllers; using Kreta.Web.Areas.Intezmeny.Models; using Kreta.Web.Controllers; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.TabStrip; using Kreta.Web.ModelBinder.Mvc; using Kreta.Web.Models; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; namespace Kreta.Web.Areas.Intezmeny.Controllers { [MvcRoleClaimsAuthorize(true)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)] [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)] public class IntezmenyController : Controller { private IIktatoRepositoryFactory IktatoRepositoryFactory { get; } private IktatoServiceConfiguration IktatoServiceConfiguration { get; } private readonly IJiraHelper JiraHelper; public IntezmenyController(IJiraHelper jiraHelper, IIktatoRepositoryFactory iktatoRepositoryFactory, IktatoServiceConfiguration iktatoServiceConfiguration) { IktatoRepositoryFactory = iktatoRepositoryFactory; IktatoServiceConfiguration = iktatoServiceConfiguration; JiraHelper = jiraHelper; } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)] [MvcRolePackageDenyAuthorize(TanevEnum.Mind, KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)] public ActionResult Index() { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); IntezmenyModel model = api.GetIntezmeny(IktatoRepositoryFactory, IktatoServiceConfiguration); return View("Index", model); } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public ActionResult IntezmenyFeladatEllatasiHelyDetailGrid(int? id) { return PartialView("IntezmenyFeladatEllatasiHelyDetailGrid", id); } public ActionResult ModIntezmenyPopUp() { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); IntezmenyModel model = api.GetIntezmeny(IktatoRepositoryFactory, IktatoServiceConfiguration); model.FormSettings = new List() { CimElerhetosegConstant.CimSectionVisible, CimElerhetosegConstant.TartozkodasiHelyCimTipus, CimElerhetosegConstant.SeparatorRowHide, CimElerhetosegConstant.CsakMagyarorszag }; model.TanulovalEgyezik = false; PopUpModel pm = new PopUpModel(model, "Intezmeny_Bevitel"); pm = pm.AddCancelBtn(pm, "IntezmenyHelper.modIntezmenyPopUpCancel"); pm = pm.AddOkBtn(pm, "IntezmenyHelper.modIntezmenyPopUpSave"); return PartialView(Constants.General.PopupView, pm); } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult GetIntezmenyAdatokPartial() { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); IntezmenyInfoModel intezmenyInfoModel = new IntezmenyInfoModel(api.GetIntezmeny(IktatoRepositoryFactory, IktatoServiceConfiguration)); return PartialView("Intezmeny_AdatokInfo_Partial", intezmenyInfoModel.info); } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public ActionResult InfoMukodesiHelyPopUp(int pID) { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); MukodesiHelyModel model = api.GetMukodesiHely(pID); PopUpModel pm = new PopUpModel(model, "MukodesiHely_Info"); pm = pm.AddCancelBtn(pm, "IntezmenyHelper.infoMukodesiHelyPopUpCancel"); return PartialView(Constants.General.PopupView, pm); } public ActionResult ModMukodesiHelyPopUp(int? pID) { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); MukodesiHelyModel model = pID.HasValue ? api.GetMukodesiHely(pID.Value) : new MukodesiHelyModel(); model.FormSettings = new List() { CimElerhetosegConstant.CimSectionVisible, CimElerhetosegConstant.TartozkodasiHelyCimTipus, CimElerhetosegConstant.SeparatorRowHide, CimElerhetosegConstant.CsakMagyarorszag }; model.TanulovalEgyezik = false; model.Orszag = (int)OrszagTipusEnum.Magyarorszag; PopUpModel pm = new PopUpModel(model, "MukodesiHely_Bevitel"); pm = pm.AddCancelBtn(pm, "IntezmenyHelper.modMukodesiHelyPopUpCancel"); pm = pm.AddOkBtn(pm, "IntezmenyHelper.modMukodesiHelyPopUpSave"); return PartialView(Constants.General.PopupView, pm); } public ActionResult ModFeladatPopUp(FeladatellatasiHelyModel panelFeladatellatasiHelyModel) { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); if (panelFeladatellatasiHelyModel.ID.HasValue) { panelFeladatellatasiHelyModel = api.GetFeladatellatasiHely(panelFeladatellatasiHelyModel.ID.Value); } panelFeladatellatasiHelyModel.FeladatList = new ComboBoxHelperApiController().GetOktatasiNevelesiFeladatList(false); SelectListItem aktItem = new SelectListItem(); if (panelFeladatellatasiHelyModel.FeladatTipus.HasValue) { aktItem = panelFeladatellatasiHelyModel.FeladatList.Where(x => x.Value == panelFeladatellatasiHelyModel.FeladatTipus.Value.ToString()).FirstOrDefault(); } // "Működés helyhez egy típusból csak egyet lehessen felvenni, ne duplikálódjon" panelFeladatellatasiHelyModel.FeladatList = api.GetFeladatListByMukodesiHelyId(panelFeladatellatasiHelyModel.MukodesiHelyID); if (!string.IsNullOrWhiteSpace(aktItem.Value) && !string.IsNullOrWhiteSpace(aktItem.Text)) { panelFeladatellatasiHelyModel.FeladatList.Add(aktItem); } var oktatasNevelesiFeladatHelper = new OktatasNevelesiFeladatHelper(ConnectionTypeExtensions.GetSessionConnectionType()); panelFeladatellatasiHelyModel.IsAMIModuleActive = oktatasNevelesiFeladatHelper.IsAMIModuleActive(); panelFeladatellatasiHelyModel.IsKollegiumModuleActive = oktatasNevelesiFeladatHelper.IsKollegiumModuleActive(); panelFeladatellatasiHelyModel.IsEGYMIModuleActive = oktatasNevelesiFeladatHelper.IsEGYMIModuleActive(); PopUpModel pm = new PopUpModel(panelFeladatellatasiHelyModel, "FeladatellatasiHely_Bevitel"); pm = pm.AddCancelBtn(pm, "IntezmenyHelper.modFeladatPopUpCancel"); pm = pm.AddOkBtn(pm, "IntezmenyHelper.modFeladatPopUpSave"); return PartialView(Constants.General.PopupView, pm); } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult OpenFeladatellatasiHelyTab(int feladellHelyID) { FeladatellatasiHelyModel fmodel = new FeladatellatasiHelyModel() { ID = feladellHelyID }; fmodel.TabList = GetTabItems(fmodel); PopUpModel pm = new PopUpModel(fmodel, "FeladatellatasiHelyAdatokTab"); pm.AddCancelBtn(pm, "IntezmenyHelper.cancelFeladatellatasiHelyAdatok"); return PartialView(Constants.General.PopupView, pm); } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult OpenFeladatellatasiHely_AlapadatokTab(int id) { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); FeladatellatasiHelyModel fmodel = api.GetFeladatellatasiHelyAlapadatok(id); return PartialView("FeladatellatasiHely_AlapadatokTab", fmodel); } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult OpenFeladatellatasiHely_OsztalycsoportokTab(int id) { FeladatellatasiHelyModel fmodel = new FeladatellatasiHelyModel() { ID = id }; return PartialView("FeladatellatasiHely_OsztalyokTab", fmodel); } [MvcRolePackageAuthorize(TanevEnum.Mind, KretaClaimPackages.Adminisztrator.ClaimValue)] public ActionResult OpenFeladatellatasiHely_AlkalmazottakTab(int id) { FeladatellatasiHelyModel fmodel = new FeladatellatasiHelyModel() { ID = id }; return PartialView("FeladatellatasiHely_AlkalmazottakTab", fmodel); } public ActionResult IntezmenyiDokumentumPartial(IntezmenyiDokumentumModel model) { IntezmenyApiController api = new IntezmenyApiController(JiraHelper); var filledModel = api.GetIntezmenyiDokumentumModel(model.Tipus, IktatoRepositoryFactory, IktatoServiceConfiguration); return PartialView("Intezmeny_Dokumentum_Partial", filledModel); } public List GetTabItems(FeladatellatasiHelyModel model) { var items = new List(); items.Add(new TabStripItemModel { ItemId = "1", ItemName = StringResourcesUtil.GetString(161) /*Alapadatok*/, Area = "Intezmeny", Controller = "Intezmeny", Action = "openFeladatellatasiHely_AlapadatokTab", RouteParameters = new Dictionary { { "Id", model.ID.ToString() } } }); items.Add(new TabStripItemModel { ItemId = "2", ItemName = StringResourcesUtil.GetString(3858) /*Kapcsolódó osztályok/csoportok*/, Area = "Intezmeny", Controller = "Intezmeny", Action = "openFeladatellatasiHely_OsztalycsoportokTab", RouteParameters = new Dictionary { { "Id", model.ID.ToString() } } }); items.Add(new TabStripItemModel { ItemId = "3", ItemName = StringResourcesUtil.GetString(3859) /*Kapcsolódó alkalmazottak*/, Area = "Intezmeny", Controller = "Intezmeny", Action = "openFeladatellatasiHely_AlkalmazottakTab", RouteParameters = new Dictionary { { "Id", model.ID.ToString() } } }); return items; } #region Export public ActionResult ExportMukodesiHelyekAdatai() { var bytes = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetMukodesiHelyekAdataiExcelExport(); return new FileContentResult(bytes, MediaTypeNames.Application.Octet) { FileDownloadName = HttpUtility.UrlEncode(IntezmenyResource.MukodesiHelyekAdataiExportFileName, Encoding.UTF8), }; } #endregion [HttpPost] public ActionResult UploadFile([ModelBinder(typeof(AlapdokumentumFileUploadBinder))] IEnumerable files, string dokumentumTipus) { var helper = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.InsertDokumentum(IktatoRepositoryFactory, IktatoServiceConfiguration, files, (Enums.DokumentumTipusEnum)System.Enum.Parse(typeof(Enums.DokumentumTipusEnum), dokumentumTipus)); return Content(""); } public ActionResult DownloadFile(string id) { try { var phelper = new PoszeidonHelper(ConnectionTypeExtensions.GetSessionConnectionType(), IktatoRepositoryFactory, IktatoServiceConfiguration); var (fajlnev, tartalom) = phelper.Lekeres(id.ToString()); return new FileContentResult(tartalom, MediaTypeNames.Application.Octet) { FileDownloadName = HttpUtility.UrlEncode(fajlnev, Encoding.UTF8), }; } catch (Exception ex) { throw new StatusError(HttpStatusCode.NotFound, ex.Message, ex); } } } }