using System; using System.Collections.Generic; using System.Net; using System.Web.Mvc; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.Core.FeatureToggle; using Kreta.Core.FileService; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework; using Kreta.Resources; using Kreta.Web.Areas.OsztalyCsoport.Logic; using Kreta.Web.Areas.OsztalyCsoport.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.TabStrip; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; namespace Kreta.Web.Areas.OsztalyCsoport.Controllers { public class BaseCsoportController : Controller { protected readonly IFeatureContext FeatureContext; protected readonly IFileService FileService; public BaseCsoportController(IFeatureContext featureContext, IFileService fileService) { FeatureContext = featureContext; FileService = fileService; } [NonAction] public ActionResult OpenCsoportAddPopup(int? id, int? szervezetId, bool isFromSzervezet) { var csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id); csmodel.IsFeladatellatasiHelySzures = false; csmodel.IsFromSzervezet = isFromSzervezet; csmodel.IsKretaIntezmenyiAdminIsFromSzervezet = ClaimManager.HasPackage("Adminisztrator") && isFromSzervezet; PopUpModel pm = new PopUpModel(csmodel, "CsoportAdd_Bevitel"); pm = pm.AddCancelBtn(pm, "CsoportHelper.csoportModifyAddCancel"); pm = pm.AddOkBtn(pm, "CsoportHelper.modifyAddSave"); return PartialView(Constants.General.PopupView, pm); } [NonAction] public ActionResult OpenCsoportModifyPopup(int? id, int? szervezetId, bool isFromSzervezet, string controllerName, string apiControllerName) { bool isAmiAlapkepzesesGimnaziumkentKezelendo = false; var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); if (!isFromSzervezet && osztalyCsoportHelper.GetOsztalyCsoportFeladatKategoria(id.Value) != (int)OktNevelesiKategoriaEnum.NevelesOktatas) { var gimnaziumAlapkepzeseskentKezelendo = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue(RendszerBeallitasTipusEnum.Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat); if (!(gimnaziumAlapkepzeseskentKezelendo && osztalyCsoportHelper.GetOsztalyCsoportOktatasNevelesiFeladatTipus(id.Value) == (int)OktatasiNevelesiFeladatEnum.MuveszetiSzakgimnazium)) { return OpenCsoportPropertiesTab(id.Value, isFromSzervezet, controllerName, apiControllerName, true); } isAmiAlapkepzesesGimnaziumkentKezelendo = true; } AlapkepzesCsoportModel csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id); csmodel.IsFromSzervezet = isFromSzervezet; csmodel.TabList = new List(); csmodel.TabList.Add(new TabStripItemModel() { ItemId = "1", ItemName = StringResourcesUtil.GetString(3880) /*Csoport alapadatok*/, Model = csmodel, PartialViewName = "CsoportModify_Bevitel", IsActive = true }); csmodel.TabList.Add(new TabStripItemModel() { ItemId = "2", ItemName = StringResourcesUtil.GetString(3881) /*A csoportba járó tanulók listája*/, Model = csmodel, PartialViewName = "CsoportTanulo_Bevitel" }); if (ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny && !isFromSzervezet) { csmodel.OsztalyCsoportTanuloinakMunkarendjeModel.OsztalyCsoportId = id.Value; csmodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsOsztaly = false; OsztalyCsoportLogic.SetCsoportMunkarendVisibility(csmodel, id); csmodel.TabList.Add(new TabStripItemModel() { ItemId = "3", ItemName = CommonResource.Munkarend, Model = csmodel, PartialViewName = "Info_CsoportMunkarend_Tab" }); } csmodel.IsAmiAlapkepzesesGimnaziumkentKezelendo = isAmiAlapkepzesesGimnaziumkentKezelendo; PopUpModel pm = new PopUpModel(csmodel, "CsoportModify_Bevitel_Tab"); pm = pm.AddCancelBtn(pm, "CsoportHelper.csoportModifyAddCancel"); pm = pm.AddOkBtn(pm, "CsoportHelper.modifyAddSave"); return PartialView(Constants.General.PopupView, pm); } [NonAction] public ActionResult OpenCsoportPropertiesTab(int csoportID, bool isFromSzervezet, string controllerName, string apiControllerName, bool fromAdd = false) { var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); Enum.TryParse(osztalyCsoportHelper.GetOsztalyCsoportFeladatKategoria(csoportID).ToString(), out OktNevelesiKategoriaEnum kategoria); if (kategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas) { var gimnaziumAlapkepzeseskentKezelendo = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue(RendszerBeallitasTipusEnum.Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat); if (!(gimnaziumAlapkepzeseskentKezelendo && osztalyCsoportHelper.GetOsztalyCsoportOktatasNevelesiFeladatTipus(csoportID) == (int)OktatasiNevelesiFeladatEnum.MuveszetiSzakgimnazium)) { return RedirectToAction("OpenCsoportPropertiesTab", Constants.Controllers.CsoportAmi, new { csoportID, fromAdd }); } } if (kategoria == OktNevelesiKategoriaEnum.Kollegium) { return RedirectToAction("OpenCsoportPropertiesTab", Constants.Controllers.KollegiumCsoport, new { csoportID, fromAdd }); } if (kategoria == OktNevelesiKategoriaEnum.EGYMI) { return RedirectToAction("OpenCsoportPropertiesTab", Constants.Controllers.EGYMICsoport, new { csoportID, fromAdd }); } var csmodel = new AlapkepzesCsoportModel() { ID = csoportID }; csmodel.ControllerName = controllerName; csmodel.ApiControllerName = apiControllerName; csmodel.IsFromSzervezet = isFromSzervezet; csmodel.IsKretaIntezmenyiAdminIsFromSzervezet = ClaimManager.HasPackage("Adminisztrator") && isFromSzervezet; csmodel.TabList = GetTabItems(csmodel); var pm = new PopUpModel(csmodel, "CsoportProperties_Info"); pm = pm.AddCancelBtn(pm, "CsoportHelper.propertiesCancel"); return PartialView(Constants.General.PopupView, pm); } [NonAction] public ActionResult OpenModPopup(List csoportLista, bool isFromSzervezet) { var model = AlapkepzesOsztalyCsoportLogic.GetModelForCsoportModPopup(csoportLista, isFromSzervezet); if (!isFromSzervezet) { AlapkepzesOsztalyCsoportLogic.ValidateTobbesModFeladatKategoria(model.CsoportIDArrayString); } model.IsFromSzervezet = isFromSzervezet; PopUpModel pm = new PopUpModel(model, "CsoportTobbModify_bevitel"); pm = pm.AddCancelBtn(pm, "CsoportHelper.csoportModifyAddCancel"); pm = pm.AddOkBtn(pm, "CsoportHelper.confirmCsopModWindow"); return PartialView(Constants.General.PopupView, pm); } [NonAction] public ActionResult GetCsoportBaseProperties(int? id, bool isFromSzervezet) { var csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id); csmodel.IsFromSzervezet = isFromSzervezet; return PartialView("Info_Alapadatok_Tab", csmodel); } public List GetTabItems(AlapkepzesCsoportModel model) { var csoportController = model.ControllerName; var items = new List(); items.Add(new TabStripItemModel { ItemId = "1", ItemName = StringResourcesUtil.GetString(161), Area = "OsztalyCsoport", Controller = csoportController, Action = "GetCsoportBaseProperties", RouteParameters = new Dictionary() { { "Id", model.ID.ToString() } } }); items.Add(new TabStripItemModel { ItemId = "2", ItemName = OsztalyCsoportResource.Tanulok, /*Tanulók*/ Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportTanuloi", RouteParameters = new Dictionary() { { "Id", model.ID.ToString() } } }); items.Add(new TabStripItemModel { ItemId = "3", ItemName = StringResourcesUtil.GetString(164)/*Foglalkozások*/, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportFoglalkozasai", RouteParameters = new Dictionary() { { "Id", model.ID.ToString() } } }); if (!ClaimData.IsSzirIntezmeny) { items.Add(new TabStripItemModel { ItemId = "4", ItemName = OsztalyCsoportResource.OrarendiOrak, Area = "OsztalyCsoport", Controller = csoportController, Action = "GetCsoportOrarendiOrai", RouteParameters = new Dictionary() { { "Id", model.ID.ToString() }, { "apiControllerName", model.ApiControllerName } }, IsETTFDisabled = true }); items.Add(new TabStripItemModel { ItemId = "5", ItemName = OsztalyCsoportResource.Tanmenetek, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportTanmenetei", RouteParameters = new Dictionary() { { "Id", model.ID.ToString() } }, IsETTFDisabled = true }); items.Add(new TabStripItemModel { ItemId = "6", ItemName = StringResourcesUtil.GetString(167)/*Megtartott tanórák*/, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportMegtartottTanorai", RouteParameters = new Dictionary() { { "Id", model.ID.ToString() } }, IsETTFDisabled = true }); items.Add(new TabStripItemModel { ItemId = "7", ItemName = StringResourcesUtil.GetString(1701)/*Értékelések*/, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportErtekelesei", RouteParameters = new Dictionary() { { "Id", model.ID.ToString() } }, IsETTFDisabled = true }); } if (ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny && !model.IsFromSzervezet) { items.Add(new TabStripItemModel { ItemId = "8", ItemName = CommonResource.Munkarend, Area = "OsztalyCsoport", Controller = Constants.Controllers.Csoport, Action = "GetCsoportTanuloinakMunkarendje", RouteParameters = new Dictionary() { { "id", model.ID.ToString() } } }); } return items; } [NonAction] public ActionResult GetCsoportOrarendiOrai(int id, string apiControllerName, bool isFromSzervezet) { var csmodel = AlapkepzesOsztalyCsoportLogic.GetCsoportBaseProperties(id); csmodel.ApiControllerName = apiControllerName; csmodel.IsFromSzervezet = isFromSzervezet; return PartialView("Info_CsoportOrarendiOrai_Tab", csmodel); } } }