using System.Collections.Generic; using System.Web.Mvc; using Kreta.Core.FeatureToggle; using Kreta.Core.FileService; using Kreta.Enums; using Kreta.Web.Areas.Intezmeny.Logic; using Kreta.Web.Areas.Intezmeny.Models; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; using TeremConstants = Kreta.Web.Constants.ViewNames.Terem; namespace Kreta.Web.Areas.Intezmeny.Controllers { public abstract class BaseTeremController : Controller { protected readonly IFeatureContext FeatureContext; protected readonly IFileService FileService; public BaseTeremController(IFeatureContext featureContext, IFileService fileService) { FeatureContext = featureContext; FileService = fileService; } #region Public method's [NonAction] public ActionResult OpenTeremPropertiesTab(int teremId, bool isFromSzervezet, string controllerName) { var teremModel = new TeremModel() { TeremId = teremId, TabList = TeremLogic.GetDetailTabs(teremId.ToString(), HasLetesitmenyFeatureEnabled(), isFromSzervezet, controllerName), }; teremModel.TeremAlapadatokModel.IsFromSzervezet = isFromSzervezet; var popUpModel = new PopUpModel(teremModel, TeremConstants.TeremProperties_Info); popUpModel = popUpModel.AddCancelBtn(popUpModel, "TeremHelper.propertiesCancel"); return PartialView(Constants.General.PopupView, popUpModel); } [NonAction] public ActionResult OpenTeremBaseProperties(int teremId, bool isFromSzervezet) { var teremModel = TeremLogic.GetTeremBaseProperties(teremId); teremModel.TeremAlapadatokModel.IsFromSzervezet = isFromSzervezet; return PartialView(TeremConstants.Info_TeremBasicProperties_Tab, teremModel); } [NonAction] public ActionResult OpenTeremOrarendiOrai(int teremId, bool isFromSezervezet) { var teremModel = new TeremModel() { TeremId = teremId }; teremModel.TeremAlapadatokModel.IsFromSzervezet = isFromSezervezet; return PartialView(TeremConstants.Info_TeremScheduledClasses_Tab, teremModel); } [NonAction] public ActionResult OpenTeremModifyAddTab(int? teremId, int? szervezetId, bool isFromSzervezet = false) { var teremModel = TeremLogic.GetTeremBaseProperties(teremId); teremModel.TeremAlapadatokModel.IsFromSzervezet = isFromSzervezet; if (!teremId.HasValue) { teremModel.TeremAlapadatokModel.SzervezetId = szervezetId; if (szervezetId.HasValue) { teremModel.TeremAlapadatokModel.MukodesiHelyID = null; teremModel.TeremAlapadatokModel.Kapacitas = ClaimData.IsSelectedTanev21_22OrLater && ClaimData.IsSzakkepzoIntezmeny ? 0 : 1; teremModel.TeremAlapadatokModel.Jelleg = (int)TeremTipusEnum.dualis_helyszin; } } teremModel.TabList = TeremLogic.GetNewTabs(teremModel, HasLetesitmenyFeatureEnabled() && !szervezetId.HasValue && !isFromSzervezet); var popUpModel = new PopUpModel(teremModel, TeremConstants.Terem_AddModify); popUpModel = popUpModel.AddCancelBtn(popUpModel, "TeremHelper.propertiesCancel"); popUpModel = popUpModel.AddOkBtn(popUpModel, "TeremHelper.modifyAddSave"); return PartialView(Constants.General.PopupView, popUpModel); } [NonAction] public ActionResult OpenModPopup(List teremModelList, int? szervezetId, bool isFromSzervezet = false) { var pm = new PopUpModel(TeremLogic.GetTeremModelForModPopup(teremModelList, szervezetId, isFromSzervezet), TeremConstants.TeremModifySelected_Bevitel); pm = pm.AddCancelBtn(pm, "TeremHelper.propertiesCancel"); pm = pm.AddOkBtn(pm, "TeremHelper.confirmCsopModWindow"); return PartialView(Constants.General.PopupView, pm); } #endregion #region Private method's private bool HasLetesitmenyFeatureEnabled() { return FeatureContext.IsEnabled(Core.Constants.FeatureName.LetesitmenyBerbeadas, instituteId: ClaimData.IntezmenyAzonosito, instituteIds: Core.Constants.EnableTeremberlesIntezmenyAzonList); } #endregion } }