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

188 lines
11 KiB
C#

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<bool>(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<TabStripItemModel>();
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<bool>(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<AlapkepzesCsoportModel> 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<TabStripItemModel> GetTabItems(AlapkepzesCsoportModel model)
{
var csoportController = model.ControllerName;
var items = new List<TabStripItemModel>();
items.Add(new TabStripItemModel { ItemId = "1", ItemName = StringResourcesUtil.GetString(161), Area = "OsztalyCsoport", Controller = csoportController, Action = "GetCsoportBaseProperties", RouteParameters = new Dictionary<string, string>() { { "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<string, string>() { { "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<string, string>() { { "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<string, string>() { { "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<string, string>() { { "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<string, string>() { { "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<string, string>() { { "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<string, string>() { { "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);
}
}
}