using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web.Mvc; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Core; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework.Util; using Kreta.Resources; using Kreta.Web.Areas.Intezmeny.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; namespace Kreta.Web.Areas.Intezmeny.Controllers { [MvcRoleClaimsAuthorize(true)] [MvcRolePackageDenyAuthorize(KretaClaimPackages.IsOnlyAlkalmozott.ClaimValue)] [MvcRolePackageAuthorize(TanevEnum.AktEsKovTanev, KretaClaimPackages.Adminisztrator.ClaimValue)] public class TanevRendjeController : Controller { // GET: Intezmeny/TanevRendje public ActionResult Index() { string defaultCsengetesirend; var csengetesirendList = GetCsengetesiRendList(); if (csengetesirendList.Exists(x => x.Selected)) { defaultCsengetesirend = csengetesirendList.Where(x => x.Selected).FirstOrDefault().Value; } else if (csengetesirendList.Count == 1) { defaultCsengetesirend = csengetesirendList.FirstOrDefault().Value; } else { defaultCsengetesirend = string.Empty; } var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanevCO = tanevHelper.GetTanevInfo(); var model = new TanevRendjeIndexModel() { HetirendList = GetSortedHetirendIdList(), DefaultHetirendValue = ((int)HetiRendTipusEnum.MindegyikHet).ToString(), DefaultCsengetesiRendValue = defaultCsengetesirend, TanevKezdoNap = tanevCO.KezdoNap, TanevUtolsoNap = tanevCO.UtolsoNap, }; return View(model); } #region PopUp actions public ActionResult OpenNewTanevRendjePopUp(DateTime? tanevRendjeDatum) { var tanevRendjeModel = new TanevRendjeModel { OsszesCsop = true, NapTipusaList = GetNapTipusaList(true), CsengetesiRendList = GetCsengetesiRendList(), IsElteroNapModosithato = true }; if (tanevRendjeDatum.HasValue) { tanevRendjeModel.Datum = tanevRendjeDatum.Value.Date; tanevRendjeModel.ElteroOrarendSzerintiTanitasNapDatum = tanevRendjeDatum.Value.Date; } var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanevCO = tanevHelper.GetTanevInfo(); tanevRendjeModel.TanevKezdoNap = tanevCO.KezdoNap; tanevRendjeModel.TanevUtolsoNap = tanevCO.UtolsoNap; if (tanevRendjeDatum.HasValue) { if ((tanevRendjeDatum.Value.Date < tanevCO.KezdoNap) || (tanevRendjeDatum.Value.Date > tanevCO.UtolsoNap)) throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.ADatumCsakAKivalasztottTanevbeEsoIdoszakLehet); } var tanevrendHelper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()); tanevRendjeModel.CsengetesiRend = tanevrendHelper.GetTanevrendDefaultCsengetesiRend(tanevCO.Id); var model = new PopUpModel(tanevRendjeModel, "New_PopUp"); model.AddCancelBtn(model, "TanevRendjeHelper.newTanevRendjeCancel"); model.AddOkBtn(model, "TanevRendjeHelper.newTanevRendjeSave"); return PartialView(Constants.General.PopupView, model); } public ActionResult OpenModifyTanevRendjePopUp(int tanevRendjeId) { TanevrendCO co; var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()); co = helper.GetTanevrendById(tanevRendjeId); var nemodosithato = co.NapTip == (int)NapTipusEnum.elso_tanitasi_nap || co.NapTip == (int)NapTipusEnum.elso_felev_vege || co.NapTip == (int)NapTipusEnum.utolso_tanitasi_nap || co.NapTip == (int)NapTipusEnum.utolso_tanitasi_nap_a_vegzos_evfolyamokon; var tanevRendjeModel = new TanevRendjeModel { TanevRendjeId = co.ID, Datum = co.Datum, NapTipusa = co.NapTip, Nap = co.Nap, Hetirend = co.Hetirend, OsszesCsop = co.OsszesCsop, CsengetesiRend = co.CsengetesiRend, Megjegyzes = co.Megjegyzes, UresOrarend = co.UresOrarend, ElteroOrarendSzerintiTanitasNapDatum = co.ElteroOrarendSzerintiTanitasNapDatum.HasValue ? co.ElteroOrarendSzerintiTanitasNapDatum : co.Datum, IsElteroNapModosithato = co.IsElteroNapModosithato, NapTipusaList = GetNapTipusaList(!nemodosithato, co.NapTip), CsengetesiRendList = GetCsengetesiRendList() }; var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanevCO = tanevHelper.GetTanevInfo(); tanevRendjeModel.TanevKezdoNap = tanevCO.KezdoNap; tanevRendjeModel.TanevUtolsoNap = tanevCO.UtolsoNap; var model = new PopUpModel(tanevRendjeModel, "New_PopUp"); model.AddCancelBtn(model, "TanevRendjeHelper.modifyTanevRendjeCancel"); model.AddOkBtn(model, "TanevRendjeHelper.modifyTanevRendjeSave"); return PartialView(Constants.General.PopupView, model); } public ActionResult OpenTanevRendjeInfoPopUp(int tanevRendjeId) { TanevRendjeInfoModel tanevRendjeInfoModel; var helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()); TanevrendCO tanevrendCO = helper.GetTanevrendById(tanevRendjeId); tanevRendjeInfoModel = new TanevRendjeInfoModel { TanevNeve = tanevrendCO.TanevNeve, Datum = tanevrendCO.Datum.ToShortDateString(), NapTipusa = tanevrendCO.NapTip.GetDisplayName(ClaimData.SelectedTanevID.Value), Nap = (tanevrendCO.Nap.IsEntityId()) ? tanevrendCO.Nap.GetDisplayName(ClaimData.SelectedTanevID.Value) : string.Empty, Hetirend = tanevrendCO.Hetirend.GetDisplayName(tanevrendCO.Tanev), Csoportok = tanevrendCO.Csoportok, CsengetesiRend = helper.GetTanevrendValueString(tanevrendCO.Tanev, tanevrendCO.CsengetesiRend), Megjegyzes = tanevrendCO.Megjegyzes, UresOrarend = tanevrendCO.UresOrarend, ElteroOrarendSzerintiTanitasNapDatum = tanevrendCO.ElteroOrarendSzerintiTanitasNapDatum.ToShortDateString() }; var model = new PopUpModel(tanevRendjeInfoModel, "Info_PopUp"); model.AddCancelBtn(model, "TanevRendjeHelper.tanevRendjeInfoCancel"); return PartialView(Constants.General.PopupView, model); } public ActionResult OpenSetHetirendPopUp() { var model = new PopUpModel(null, "SetHetirend_PopUp"); model.AddCancelBtn(model, "TanevRendjeHelper.setHetirendCancel"); model.AddOkBtn(model, "TanevRendjeHelper.validationHetirendHelyettesites"); return PartialView(Constants.General.PopupView, model); } public ActionResult OpenDeleteTanevRendjePopUp(int tanevRendjeId) { var model = new PopUpModel(tanevRendjeId, "DeleteConfirm_PopUp"); model.AddCancelBtn(model, "TanevRendjeHelper.deleteTanevRendjeCancel"); model.AddDeleteBtn(model, "TanevRendjeHelper.deleteTanevRendje"); return PartialView(Constants.General.PopupView, model); } #endregion #region DropDownList data public static List GetTanevList() { IDictionary dictionary; var helper = new TanevHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); dictionary = helper.GetTanevekForDDL(string.Empty); return dictionary.ToSelectListItemList(); } public static List GetNapTipusaList(bool isNewTanevRendje, int? currentNaptipus = null) { IDictionary dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.NapTipus, ClaimData.SelectedTanevID.Value, true); // Új felvételekor bizonyos kiemelt típusok közül nem lehet felvenni egynél többet (pl: Első tanítási nap, Utolsó tanítási nap, stb...), ezért ezeket kiszedi a DropDownListből, ha már van felvéve egy adott kiemelt típusú esemény. if (isNewTanevRendje) { List marFelvettKiemeltEsemenyek; TanevrendHelper helper = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()); marFelvettKiemeltEsemenyek = helper.GetMarFelvettKiemeltTanevEsemenyek(); foreach (int id in marFelvettKiemeltEsemenyek) { if (currentNaptipus == null || currentNaptipus != id) { dictionary.Remove(id.ToString()); } } } dictionary.Remove(((int)NapTipusEnum.OsszefuggoSzakmaiGyakorlatiNap).ToString()); return dictionary.ToSelectListItemList(); } public static List GetCsengetesiRendList() { IDictionary dictionary; var helper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); dictionary = helper.GetCsengetesiRendForDDL(string.Empty); return dictionary.ToSelectListItemList(); } #endregion public static List GetSortedHetirendIdList() => new NaptariHetHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSortedHetirendIdList(); public static List GetNapList() { IDictionary dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.HetNapjaTipus, ClaimData.SelectedTanevID.Value, true); return dictionary.ToSelectListItemList(); } } }