kreta/KretaWeb/Areas/Intezmeny/Controllers/BaseTeremController.cs
2024-03-13 00:33:46 +01:00

105 lines
4.4 KiB
C#

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<TeremModModel> 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
}
}