using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Web.Mvc; using Kendo.Mvc; using Kendo.Mvc.Infrastructure; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Classes.ComboBox; using Kreta.BusinessLogic.Exceptions; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.Core; using Kreta.Enums; using Kreta.Framework; using Kreta.Framework.Entities; using Kreta.Framework.Util; using Kreta.Resources; using Kreta.Web.Areas.OsztalyCsoport.Models; using Kreta.Web.Areas.TanuloErtekeles.Models.TanuloErtekeles; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Helpers.Modal; using Kreta.Web.Models.EditorTemplates; using Kreta.Web.Security; using Newtonsoft.Json; using static Kreta.Core.Constants; namespace Kreta.Web.Areas.OsztalyCsoport.Logic { public abstract class OsztalyCsoportLogic { protected static readonly List nyelviElokeszitosOsztalyok = new List { (int)EvfolyamTipusEnum._5_Ny, (int)EvfolyamTipusEnum._7_Ny, (int)EvfolyamTipusEnum._9_Ny }; const int csoportMaxLetszam = 999; const int osztalyMaxLetszam = 40; public static readonly List AmiEvfoylamIdList = new List { (int)EvfolyamTipusEnum.na, (int)EvfolyamTipusEnum.Elokepzo1, (int)EvfolyamTipusEnum.Elokepzo2, (int)EvfolyamTipusEnum._1, (int)EvfolyamTipusEnum._2, (int)EvfolyamTipusEnum._3, (int)EvfolyamTipusEnum._4, (int)EvfolyamTipusEnum._5, (int)EvfolyamTipusEnum._6, (int)EvfolyamTipusEnum._7, (int)EvfolyamTipusEnum._8, (int)EvfolyamTipusEnum._9, (int)EvfolyamTipusEnum._10, (int)EvfolyamTipusEnum._11, (int)EvfolyamTipusEnum._12, (int)EvfolyamTipusEnum._13, (int)EvfolyamTipusEnum._1_13, (int)EvfolyamTipusEnum._2_14, (int)EvfolyamTipusEnum.Osszevont_osztaly, (int)EvfolyamTipusEnum._3_15 }; public static readonly List SzakkepzoEvfolyamIdList = new List { (int)EvfolyamTipusEnum._1_9_4_es_szintu_szakkepzo_iskola, (int)EvfolyamTipusEnum._2_10_4_es_szintu_szakkepzo_iskola, (int)EvfolyamTipusEnum._3_11_4_es_szintu_szakkepzo_iskola, (int)EvfolyamTipusEnum._4_12_4_es_szintu_szakkepzo_iskola_4_eves_, (int)EvfolyamTipusEnum.ksz_11_4_es_szintu_szakkepzo_iskola_kozismeret_nelkuli, (int)EvfolyamTipusEnum.ksz_12_4_es_szintu_szakkepzo_iskola_kozismeret_nelkuli, (int)EvfolyamTipusEnum._9_orientacios_evfolyam, (int)EvfolyamTipusEnum._9_ny_technikum_nyelvi_elokeszito, (int)EvfolyamTipusEnum._9_kny_technikum_ket_tanitasi_nyelvu_elokeszito, (int)EvfolyamTipusEnum._9_technikum, (int)EvfolyamTipusEnum._9_technikum_ket_tanitasi_nyelvu_, (int)EvfolyamTipusEnum._10_technikum, (int)EvfolyamTipusEnum._10_technikum_ket_tanitasi_nyelvu_, (int)EvfolyamTipusEnum._11_technikum, (int)EvfolyamTipusEnum._11_technikum_ket_tanitasi_nyelvu_, (int)EvfolyamTipusEnum._12_technikum, (int)EvfolyamTipusEnum._12_technikum_ket_tanitasi_nyelvu_, (int)EvfolyamTipusEnum._13_technikum, (int)EvfolyamTipusEnum._13_technikum_ket_tanitasi_nyelvu_, (int)EvfolyamTipusEnum._14_technikum_6_eves_kepzes_, (int)EvfolyamTipusEnum._14_technikum_ket_tanitasi_nyelvu_6_eves_kepzes_, (int)EvfolyamTipusEnum._1_13_5_os_szintu_technikum, (int)EvfolyamTipusEnum._2_14_5_os_szintu_technikum, (int)EvfolyamTipusEnum.muhelyiskola_osztaly, (int)EvfolyamTipusEnum.ksz_13_4_es_szintu_szakkepzo_iskola_kozismeret_nelkuli, (int)EvfolyamTipusEnum._3_15_5_os_szintu_technikum, (int)EvfolyamTipusEnum.dobbanto_elokeszito, }; public static string SaveOsztalyGroup(ModOsztalyModel model) { var errorMessage = string.Empty; var helper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var co = model.ConvertModelToTobbesModCO(); var sikertelenUpdateOsztalyNev = string.Empty; if (string.IsNullOrWhiteSpace(model.OsztalyIDArrayString)) { sikertelenUpdateOsztalyNev = helper.UpdateOsztalyTobbes(co); if (!string.IsNullOrWhiteSpace(sikertelenUpdateOsztalyNev)) { errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateOsztalyNev}"; } } else { foreach (var item in model.OsztalyIdArray) { co.ID = int.Parse(item); sikertelenUpdateOsztalyNev = helper.UpdateOsztalyTobbes(co); if (!string.IsNullOrWhiteSpace(sikertelenUpdateOsztalyNev)) { errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateOsztalyNev}"; } } } return errorMessage; } public static string DeleteOsztalyok(List osztalyIdLista, bool csoportokTorlese, out bool deleteError) { var message = new StringBuilder(); var connectionType = ConnectionTypeExtensions.GetSessionConnectionType(); var osztalyHelper = new OsztalyHelper(connectionType); deleteError = false; foreach (var osztalyId in osztalyIdLista) { try { message.AppendFormat(OsztalyCsoportResource.Az0NevuOsztalyTorleseSikeresenMegtortent, osztalyHelper.DeleteClass(osztalyId, csoportokTorlese, ClaimData.FelhasznaloId, updateTanoraEvesSorszam: false)).AppendLine(); } catch (CannotBeDeletedException e) { deleteError = true; message.AppendLine(e.Message); } catch (EntityDeleteFailedException ex) { deleteError = true; message.AppendFormat(ErrorResource.Az0NemTorolhetoMertEgyVagyTobbKapcsolodasaVanKapcsolatok1, CommonResource.Osztaly, ex.ConnectionErrorMessage).AppendLine(); } } if (osztalyIdLista.Any()) { new TanoraHelper(connectionType).UpdateTanitasiOraEvesSorszamTeljesTanev(); } if (!deleteError) { if (osztalyIdLista.Count == 1) { message.Clear(); message.Append(CommonResource.ATorlesSikeresenMegtortent); } else if (osztalyIdLista.Count > 1) { message.Clear(); message.AppendFormat(OsztalyCsoportResource.XDarabOsztályTorleseSikeresenMegtortent, osztalyIdLista.Count); } } return message.ToString(); } protected static Dictionary ValidateBaseOsztaly(OsztalyBaseModel model) { var customModelState = new Dictionary(); var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(); ValidateOsztalyCsoportNev(customModelState, model.OsztalyNev, model.ID); if (model.OsztalynaploMegnyitasa.HasValue && !(model.OsztalynaploMegnyitasa.Value >= tanev.KezdoNap && model.OsztalynaploMegnyitasa.Value <= tanev.UtolsoNap)) { customModelState.Add("OsztalynaploMegnyitasa", string.Format(OsztalyCsoportResource.OsztalynaploMegnyitasiDatuma0Es1KozottiIdoszakbanLehet, tanev.KezdoNap.ToShortDateString(), tanev.UtolsoNap.ToShortDateString())); } if (model.OsztalyfonokId.HasValue && model.OsztalyfonokHelyettesId.HasValue && model.OsztalyfonokId == model.OsztalyfonokHelyettesId) { customModelState.Add("OsztalyfonokHelyettesId", Framework.StringResourcesUtil.GetString(3872)); //Az osztályfőnök és a helyettes nem lehet azonos! } ValidateTervezettLetszam(customModelState, model.TervezettLetszam, osztalyMaxLetszam); if (model.OsztalynaploLezarasa.HasValue && (model.OsztalynaploLezarasa.Value < tanev.KezdoNap || model.OsztalynaploLezarasa.Value > tanev.UtolsoNap)) { //Az osztálynapló lezárásának dátuma a tanév első és utolsó napja között lehet customModelState.Add("OsztalynaploLezarasa", StringResourcesUtil.GetString(3874)); } if (model.OsztalynaploMegnyitasa.HasValue && model.OsztalynaploLezarasa.HasValue && model.OsztalynaploLezarasa.Value < model.OsztalynaploMegnyitasa.Value) { //Az osztálynapló lezárás dátuma nem lehet korábban, mint a megnyitás dátuma. var key = customModelState.ContainsKey("OsztalynaploLezarasa") ? "OsztalynaploLezarasaEgyeb" : "OsztalynaploLezarasa"; customModelState.Add(key, StringResourcesUtil.GetString(3927)); } if (!string.IsNullOrWhiteSpace(model.OsztalypenzBankszamlaszama)) { var regex = new Regex(RegularExpressions.Bankszamla); if (!regex.Match(model.OsztalypenzBankszamlaszama).Success) { customModelState.Add("OsztalypenzBankszamlaszama", OsztalyCsoportResource.AzOsztalypenzBankszamlaszamaHibasFormatumu); } } if (!model.KepzesiForma.HasValue && !(ClaimData.IsSzakkepzoIntezmeny && ClaimData.IsSelectedTanev21_22OrLater)) { customModelState.Add("KepzesiForma", OsztalyCsoportResource.KepzestipusMegadasaKotelezo); } ValidateAmiEvfolyam(customModelState, model.FeladatEllatasiHelyId.Value, model.EvfolyamTipusa.Value); return customModelState; } public static Dictionary ValidateNaplosorszamEsTorzslapszamBeallitasaiModelList(List naplosorszamEsTorzslapszamBeallitasaiModelList) { Dictionary customModelState = new Dictionary(); foreach (NaplosorszamEsTorzslapszamBeallitasaiModel model in naplosorszamEsTorzslapszamBeallitasaiModelList) { if (model.Naplosorszam.HasValue && model.Naplosorszam < 0) { customModelState.Add( $"NaplosorszamEsTorzslapszamBeallitasaiGrid_Naplosorszam_{model.Id}", string.Format(TanuloResource.NaploSorszamaNemNullaVagyPozitivSzam, model.Nev, model.BelepesDatum.ToString(ToStringPattern.HungarianDate), model.KilepesDatum?.ToString(ToStringPattern.HungarianDate))); } if (model.Torzslapszam?.Length > 500) { customModelState.Add( $"NaplosorszamEsTorzslapszamBeallitasaiGrid_Torzslapszam_{model.Id}", string.Format(TanuloResource.TorzslapSzamaTobbMint500Karakter, model.Nev, model.BelepesDatum.ToString(ToStringPattern.HungarianDate), model.KilepesDatum?.ToString(ToStringPattern.HungarianDate))); } } return customModelState; } public static Dictionary ValidateOsztalyGroup(ModOsztalyModel model) { var customModelState = new Dictionary(); if (model.Evfolyam.HasValue && nyelviElokeszitosOsztalyok.Contains(model.Evfolyam.Value) && !(model.NyelviElokeszito.HasValue && model.NyelviElokeszito.ToBool())) { customModelState.Add("Evfolyam", OsztalyCsoportResource.NyelviElokeszitosOsztalyt5ny7ny9nyCsakNyelviElőkészítőLenyilóListaIgenreAllitasavalLehetFelvenni); } ValidateOsztalynaplo(customModelState, model.OsztalynaploMegnyitasa, model.OsztalynaploLezarasa); ValidateTervezettLetszam(customModelState, model.TervezettLetszam, osztalyMaxLetszam); if (model.Evfolyam.HasValue) { ValidateAmiEvfolyamGroup(customModelState, model.OsztalyIdArray, model.Evfolyam.Value); } return customModelState; } public static void AktTanevOsztalyVisszairatkoztatasJogviszonyCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary modelState, AktTanevOsztalyVisszairatkoztatasModel model) { VisszairatkozasJogviszonyCustomValidation(modelState, model.JogviszonyKezdete, model.Datum, model.JogviszonyKeletkezesenekJogcimeId, model.JogviszonyTipusaId); } public static void KovTanevVisszairatkoztatasJogviszonyCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary modelState, KovTanevVisszairatkoztatasModel model) { VisszairatkozasJogviszonyCustomValidation(modelState, model.JogviszonyKezdete, model.Datum, model.JogviszonyKeletkezesenekJogcimeId, model.JogviszonyTipusaId); } private static void VisszairatkozasJogviszonyCustomValidation(System.Web.Http.ModelBinding.ModelStateDictionary modelState, DateTime? jogviszonyKezdete, DateTime? datum, int? jogviszonyKeletkezesenekJogcimeId, int? jogviszonyTipusaId) { if (!jogviszonyKezdete.HasValue) { modelState.AddModelError(nameof(jogviszonyKezdete), ErrorResource.JogviszonyKezdeteKitolteseKotelezo); } else { if (jogviszonyKezdete.Value > datum) { modelState.AddModelError(nameof(jogviszonyKezdete), ErrorResource.JogviszonyKezdeteNemLehetKesobbMintABeleptetes); } } if (!jogviszonyKeletkezesenekJogcimeId.IsEntityId()) { modelState.AddModelError(nameof(jogviszonyKeletkezesenekJogcimeId), ErrorResource.JogviszonyKeletkezesenekJogcimeKitolteseKotelezo); } if (!jogviszonyTipusaId.IsEntityId()) { modelState.AddModelError(nameof(jogviszonyTipusaId), ErrorResource.JogviszonyTipusaKitolteseKotelez); } } public static ModOsztalyModel SetModPopUpModel(List osztalyList) { ModOsztalyModel model = new ModOsztalyModel(); if (osztalyList.Count == 1) { model = GetOsztalyModProperties(osztalyList[0].ID); } else { foreach (var item in osztalyList) { model.OsztalyIDArrayString += item.ID.ToString() + ","; model.OsztalyNevArray += item.Nev.ToString() + ", "; } model.OsztalyIDArrayString = model.OsztalyIDArrayString.Remove(model.OsztalyIDArrayString.Length - 1); model.OsztalyNevArray = model.OsztalyNevArray.Remove(model.OsztalyNevArray.Length - 2); } model.IsIntezmenySzakkepzo = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok().IsSzakkepzo; model.AmiFelhelyIdsJSON = JsonConvert.SerializeObject(GetFeladatEllatasiHelyIdsBySelectedOktNevelesiKategoria((int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas)); return model; } public static TanuloSorolasModel GetModelForPartialViewOsztaly(string dataType, int osztalyid) { var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = tanevHelper.GetTanevInfo(); var datum = dataType == "AktData" ? (DateTime?)DateTime.Now : null; var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportTanulok(osztalyid, datum, tanev.OraFelvetelKezdete, isGroupedByKilepesDatum: true); var model = TanuloBesorolasLogic.GenerateTanuloSorolasModelCsoportOsztaly(ds, isCsoportView: false); model.IsInfoView = true; return model; } public static PopUpModel GetPopUpModelForBesorolasModDatumOsztaly(int tanuloid, int osztalyid) { BeSorolasModel model = new BeSorolasModel(); DataSet ds; var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); ds = helper.GetTanuloSorolasData(tanuloid, osztalyid); if (ds != null) { DataRow dr = ds.Tables[0].Rows[0]; model.OsztalyCsoportId = osztalyid; model.OsztalyCsoportNev = dr.Field("OsztalyCsoportNev"); model.TanuloId = tanuloid; model.TanuloNev = dr.Field("TanuloNev"); model.BesorolasDatum = dr.Field("BesorolasDatum"); } PopUpModel pm = new PopUpModel(model, "_TanuloBesorolasModPartial"); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "OsztalyTanuloHelper.BesorolasWindowCancel" }); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "OsztalyTanuloHelper.BesorolasWindowSave" }); return pm; } public static PopUpModel GetPopUpModelForKisorolasModDatumOsztaly(int tanuloid, int osztalyid) { KiSorolasModel model = new KiSorolasModel(); DataSet ds; var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); ds = helper.GetTanuloSorolasData(tanuloid, osztalyid); if (ds != null) { DataRow dr = ds.Tables[0].Rows[0]; model.OsztalyCsoportId = osztalyid; model.OsztalyCsoportNev = dr.Field("OsztalyCsoportNev"); model.TanuloId = tanuloid; model.TanuloNev = dr.Field("TanuloNev"); model.KisorolasDatum = dr.Field("KisorolasDatum"); } PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial"); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "OsztalyTanuloHelper.KisorolasWindowCancel" }); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "OsztalyTanuloHelper.KisorolasWindowSave" }); return pm; } public static PopUpModel GetPopUpModelForKisorolasOsztaly(int tanuloid, int osztalyid) { KiSorolasModel model = new KiSorolasModel(); DataSet ds; var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); ds = helper.GetTanuloSorolasData(tanuloid, osztalyid); if (ds != null) { DataRow dr = ds.Tables[0].Rows[0]; model.OsztalyCsoportId = osztalyid; model.OsztalyCsoportNev = dr.Field("OsztalyCsoportNev"); model.TanuloId = tanuloid; model.TanuloNev = dr.Field("TanuloNev"); model.KisorolasDatum = dr.Field("KisorolasDatum"); } PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial"); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "OsztalyTanuloHelper.KisorolasWindowCancel" }); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "OsztalyTanuloHelper.KisorolasWindowSave" }); return pm; } public static ModOsztalyModel GetOsztalyModProperties(int? osztalyID = null) { OsztalyCO co; OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = h.GetClassById(osztalyID.Value); return ModOsztalyModel.ConvertCOToModModel(co); } public static Dictionary GetFeladatellatasiHelyIsSzakkepzesesDictionary() { var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return helper.GetFeladatellatasiHelyIsSzakkepzesesDictionary(); } public static Dictionary GetFeladatellatasiHelyIsNktDictionary() { var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return helper.GetFeladatellatasiHelyIsNkt(); } public static List GetIdsBySelectedOktatasiNevelesiFeladat(int oktatasiNevelesiFeladatId) { var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); return helper.GetIdsBySelectedOktatasiNevelesiFeladat(oktatasiNevelesiFeladatId); } public static List GetFeladatEllatasiHelyIdsBySelectedOktNevelesiKategoria(int oktNevelesiKategoriaId) { return new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()) .GetFeladatEllatasiHelyDDl(string.Empty, oktNevelesiKategoriaId).Select(x => Convert.ToInt32(x.Key)).ToList(); } public static List GetKepzesList() { List list = new List(); var itemList = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.TanterviJelleg, ClaimData.SelectedTanevID.Value, true); foreach (var item in itemList) { SelectListItem sli = new SelectListItem() { Text = item.Value, Value = item.Key }; if (item.Key == ((int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas).ToString()) { sli.Selected = true; } list.Add(sli); } return list; } public static DataSourceResult GetOsztalyTanuloi(string osztalyId, DataSourceRequest request) { var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; DataSet tanuloDataSet = helper.GetOsztalyCsoportMindenkoriTanuloiTanuloCsoportonkent(int.Parse(osztalyId)); return tanuloDataSet.ToDataSourceResult(); } public static DataSourceResult GetOsztalyBontasCsoportjai(string osztalyID, DataSourceRequest request) { var thelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var osztalyId = int.Parse(osztalyID); Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyId).ToString(), out OktNevelesiKategoriaEnum kategoria); var csoportok = thelper.GetGroupsOfClass(osztalyId, kategoria); return csoportok.ToDataSourceResult(); } public static DataSourceResult GetOsztalyFoglalkozasai(int osztalyID, DataSourceRequest request) { var fhelper = new FoglalkozasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); fhelper.GridParameters = Converter.GridParameter(request); Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyID).ToString(), out OktNevelesiKategoriaEnum kategoria); var foglalkozasok = fhelper.GetOsztalyCsoportFoglalkozasai(osztalyID, kategoria); var dataSourceResult = foglalkozasok.ToDataSourceResult(); if (dataSourceResult != null && foglalkozasok.Tables.Count == 1) { dataSourceResult.AggregateResults = new List { new AggregateResult(foglalkozasok.Tables[0].ExtendedProperties["Oraszam_SUM"], new SumFunction {SourceField = "Oraszam"}) }; } return dataSourceResult; } public static DataSourceResult GetOsztalyOrarendiOrai(string osztalyID, DataSourceRequest request, bool isFromSzervezet = false) { var ohelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()); ohelper.GridParameters = Converter.GridParameter(request); var tanulok = ohelper.GetOsztalyCsoportOrarendiOrai(int.Parse(osztalyID), isFromSzervezet); return tanulok.ToDataSourceResult(); } public static DataSourceResult GetOsztalyTanmenetei(int osztalyID, DataSourceRequest request) { var thelper = new TanmenetHelper(ConnectionTypeExtensions.GetSessionConnectionType()); thelper.GridParameters = Converter.GridParameter(request); Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyID).ToString(), out OktNevelesiKategoriaEnum kategoria); var tanmenetek = thelper.GetOsztalyCsoportTanmenetei(osztalyID, kategoria); return tanmenetek.ToDataSourceResult(); } public static DataSourceResult GetOsztalyErtekelesListGrid(string osztalyId, DataSourceRequest request, int feladatKategoriaId) { int.TryParse(osztalyId, out int id); var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var tanuloErtekelesListModel = new TanuloErtekelesListModel { OsztalyCsoportIdSearch = id, FeladatKategoriaIdSearch = feladatKategoriaId }; DataSet dataSet = helper.GetTanuloErtekelesListGridDataSet(tanuloErtekelesListModel.ToCo()); return dataSet.ToDataSourceResult(); } public static DataSourceResult GetOsztalyIgazolasai(int osztalyID, DataSourceRequest request) { var ihelper = new IgazolasHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); ihelper.GridParameters = Converter.GridParameter(request); Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(osztalyID).ToString(), out OktNevelesiKategoriaEnum kategoria); var igazolasok = ihelper.GetOsztalyCsoportIgazolasok(osztalyID, kategoria); return igazolasok.ToDataSourceResult(); } public static List GetEvfolyamListFilter(string cascadeFilter) { int? feladHelyId = null; int temp; if (int.TryParse(cascadeFilter, out temp)) feladHelyId = temp; DataSet evfolyamTipusok; var result = new List(); var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); evfolyamTipusok = helper.GetFeladatellatasiHelyhezTartozoEvfolyamtipusokSzama(feladHelyId.HasValue ? (int)feladHelyId : -1); if (evfolyamTipusok != null && evfolyamTipusok.Tables.Count > 0 && evfolyamTipusok.Tables[0] != null && evfolyamTipusok.Tables[0].Rows.Count > 0) { foreach (DataRow iRow in evfolyamTipusok.Tables[0].Rows) { ComboBoxListItem sli = new ComboBoxListItem() { Text = iRow.Field("Name").ToString(), Value = iRow.Field("ID").ToString(), GroupName = StringResourcesUtil.GetString(3931) }; result.Add(sli); } } var evfolyamTipusList = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.EvfolyamTipus, ClaimData.SelectedTanevID.Value); foreach (var item in evfolyamTipusList) { if (!result.Exists(x => x.Value == item.Key)) { ComboBoxListItem sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key, GroupName = StringResourcesUtil.GetString(3285) }; result.Add(sli); } } return result; } protected static Dictionary ValidateBaseCsoport(CsoportBaseModel model, bool getOsztalyBontasEvfolyama = true, bool isAmi = false) { var customModelState = new Dictionary(); var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(); ValidateOsztalyCsoportNev(customModelState, model.CsoportNeve, model.ID); if (model.OsztalyBontas) { if (model.ID.HasValue && model.OsztalyBontasId.HasValue && !ValidateOsztalybontas(model.ID.ToString().Split(','), model.OsztalyBontasId.Value)) { customModelState.Add("OsztalyBontas", OsztalyCsoportResource.OsztalybontashozMarTartoznakDiakok); } if (model.OsztalyBontasId == null) { customModelState.Add("OsztalyBontasId", OsztalyCsoportResource.HaACsoportOsztalybontasosOsztalyMegadasaKotelezo); } else { if (getOsztalyBontasEvfolyama) { if (int.TryParse(((VegzosOsztalyModel)GetOsztalyEvfolyama(model.OsztalyBontasId.ToString())).EvfolyamTipusa.ToString(), out int evfolyamId)) { model.EvfolyamTipusa = evfolyamId; } else { model.EvfolyamTipusa = (int)EvfolyamTipusEnum.na; } } model.FeladatEllatasiHelyId = GetOsztalyFeladatEllatasiHelye(model.OsztalyBontasId.Value); } } else { model.OsztalyBontasId = null; } ValidateCsoportNaplo(customModelState, model.CsoportNaploMegnyitasa, model.CsoportNaploLezarasa); ValidateTervezettLetszam(customModelState, model.TervezettLetszam, csoportMaxLetszam); if (model.EvfolyamTipusa.HasValue) { ValidateAmiEvfolyam(customModelState, model.FeladatEllatasiHelyId.Value, model.EvfolyamTipusa.Value); } if (model.CsoportTipusId == (int)CsoportTipusEnum.apaczai_mentorcsoport) { var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var csoportok = osztalyCsoportHelper.GetCsoportokByCsoportvezeto(model.CsoportvezetoId.Value, false); if (csoportok.Any(x => x.CsoportTipus == model.CsoportTipusId && ( (model.ID.HasValue && x.Id != model.ID) || !model.ID.HasValue ) )) { customModelState.Add("CsoportvezetoId", OsztalyCsoportResource.MarVanMentorCsoportja); } } return customModelState; } public static Dictionary ValidateCsoportGroup(CsoportModModel model) { var customModelState = new Dictionary(); if (model.OsztalyBontas.HasValueAndPositive()) { if (model.OsztalyBontasId == null) { customModelState.Add("OsztalyBontasId", OsztalyCsoportResource.HaACsoportOsztalybontasosOsztalyMegadasaKotelezo); } else { if (!ValidateOsztalybontas(model.CsoportIdArray, model.OsztalyBontasId.Value)) { customModelState.Add("OsztalyBontas", OsztalyCsoportResource.OsztalybontashozMarTartoznakDiakok); } } if (int.TryParse(((VegzosOsztalyModel)GetOsztalyEvfolyama(model.OsztalyBontasId?.ToString()))?.EvfolyamTipusa.ToString(), out int evfolyamId)) { model.EvfolyamTipusa = evfolyamId; } else { model.EvfolyamTipusa = (int)EvfolyamTipusEnum.na; } if (model.OsztalyBontasId.HasValue) { model.FeladatEllatasiHelyId = GetOsztalyFeladatEllatasiHelye(model.OsztalyBontasId.Value); } } ValidateCsoportNaplo(customModelState, model.CsoportNaploMegnyitasa, model.CsoportNaploLezarasa); ValidateTervezettLetszam(customModelState, model.TervezettLetszam, csoportMaxLetszam); if (model.EvfolyamTipusa.HasValue) { ValidateAmiEvfolyamGroup(customModelState, model.CsoportIdArray, model.EvfolyamTipusa.Value); if (!model.OsztalyBontas.HasValue || (model.OsztalyBontas.HasValue && model.OsztalyBontas.Value != 0)) { ValidateOsztalybontasEvfolyam(customModelState, model.CsoportIDArrayString, model.EvfolyamTipusa.Value); } } if (model.FeladatEllatasiHelyId.HasValue) { ValidateOsztalybontasFeladatellatasiHely(customModelState, model.CsoportIDArrayString, model.FeladatEllatasiHelyId.Value); } if (model.IsGyogypedagogiaiLogopediai.HasValue) { ValidateOsztalybontasGyogypedagogiaiLogopediai(customModelState, model.CsoportIDArrayString, model.IsGyogypedagogiaiLogopediai.ToBool()); } if (model.TechnikaiCsoport.HasValue) { ValidateOsztalybontasTechnikai(customModelState, model.CsoportIDArrayString, model.TechnikaiCsoport.ToBool()); } if (model.Vegzos.HasValue) { ValidateOsztalybontasVegzosEvfolyam(customModelState, model.CsoportIDArrayString); } return customModelState; } public static string SaveCsoportGroup(CsoportModModel model) { var connectionType = ConnectionTypeExtensions.GetSessionConnectionType(); var errorMessage = string.Empty; var csoportHelper = new CsoportHelper(connectionType); var sikertelenUpdateCsoportNev = string.Empty; if (string.IsNullOrWhiteSpace(model.CsoportIDArrayString)) { sikertelenUpdateCsoportNev = csoportHelper.CsoportTobbesModify(model.ConvertToCo()); if (!string.IsNullOrWhiteSpace(sikertelenUpdateCsoportNev)) { errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateCsoportNev}"; } } else { foreach (var item in model.CsoportIdArray) { model.ID = int.Parse(item); sikertelenUpdateCsoportNev = csoportHelper.CsoportTobbesModify(model.ConvertToCo(), updateTanoraEvesSorszam: false); if (!string.IsNullOrWhiteSpace(sikertelenUpdateCsoportNev)) { errorMessage += $"{Core.Constants.General.Sortores}{sikertelenUpdateCsoportNev}"; } } if (model.CsoportIdArray.Length > 0) { new TanoraHelper(connectionType).UpdateTanitasiOraEvesSorszamTeljesTanev(); } } return errorMessage; } public static void SaveNewEgyeniCsoport(EgyeniCsoportModel model) { CsoportHelper csHelper = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim(); csHelper.InsertCo(model.ConvertToCsoportCo()); } public static string DeleteCsoportGroup(List csoportLista, out bool deleteError) { var connectionType = ConnectionTypeExtensions.GetSessionConnectionType(); var h = new CsoportHelper(connectionType); string errorMsg = string.Empty, entityName = string.Empty; var counter = 0; foreach (var csoportId in csoportLista) { try { h.DeleteGroupById(csoportId, updateTanoraEvesSorszam: false); counter++; } catch (CannotBeDeletedException ex) { errorMsg += $"{ex.Message}{Environment.NewLine}"; continue; } catch (EntityDeleteFailedException ex) { var csoportCO = h.GetGroupByID(csoportId); entityName = csoportCO.CsoportNeve; errorMsg += string.Format(ErrorResource.CsoportNemTorolhetoKapcsolatMiatt, entityName, ex.ConnectionErrorMessage) + Environment.NewLine + Environment.NewLine; continue; } } if (csoportLista.Any()) { new TanoraHelper(connectionType).UpdateTanitasiOraEvesSorszamTeljesTanev(); } if (string.IsNullOrWhiteSpace(errorMsg)) { deleteError = false; return string.Format(ErrorResource.NSorTorlesSikeres, counter); } if (counter > 0) { errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter); } deleteError = true; return errorMsg; } public static DataSourceResult GetCsoportTanuloi(string csoportId, DataSourceRequest request) { var thelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); thelper.GridParameters = Converter.GridParameter(request); var tanulok = thelper.GetOsztalyCsoportMindenkoriTanuloi(int.Parse(csoportId)); return tanulok.ToDataSourceResult(); } public static DataSourceResult GetCsoportFoglalkozasai(int csoportId, DataSourceRequest request) { var fhelper = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()); fhelper.GridParameters = Converter.GridParameter(request); Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(csoportId).ToString(), out OktNevelesiKategoriaEnum kategoria); var foglalkozasok = fhelper.GetOsztalyCsoportFoglalkozasai(csoportId, kategoria); var dataSourceResult = foglalkozasok.ToDataSourceResult(); if (dataSourceResult != null && foglalkozasok.Tables.Count == 1) { dataSourceResult.AggregateResults = new List { new AggregateResult(foglalkozasok.Tables[0].ExtendedProperties["Oraszam_SUM"], new SumFunction {SourceField = "Oraszam"}) }; } return dataSourceResult; } public static DataSourceResult GetCsoportOrarendiOrai(string csoportId, DataSourceRequest request, bool isFromSzervezet = false) { var ohelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()); ohelper.GridParameters = Converter.GridParameter(request); var orarendiorak = ohelper.GetOsztalyCsoportOrarendiOrai(int.Parse(csoportId), isFromSzervezet); return orarendiorak.ToDataSourceResult(); } public static DataSourceResult GetCsoportTanmenetei(int csoportId, DataSourceRequest request) { var thelper = new TanmenetHelper(ConnectionTypeExtensions.GetSessionConnectionType()); thelper.GridParameters = Converter.GridParameter(request); Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(csoportId).ToString(), out OktNevelesiKategoriaEnum kategoria); var tanmenetek = thelper.GetOsztalyCsoportTanmenetei(csoportId, kategoria); return tanmenetek.ToDataSourceResult(); } public static DataSourceResult GetCsoportMegtartottTanorai(string csoportId, DataSourceRequest request) { var ohelper = new OrarendiOraHelper(ConnectionTypeExtensions.GetSessionConnectionType()); ohelper.GridParameters = Converter.GridParameter(request); DataSet ds = ohelper.GetOsztalyCsoportMegtartottOrai(int.Parse(csoportId)); return ds.ToDataSourceResult(); } public static DataSourceResult GetCsoportErtekelesListGrid(string csoportId, DataSourceRequest request, int feladatKategoriaId) { int.TryParse(csoportId, out int id); var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var tanuloErtekelesListModel = new TanuloErtekelesListModel { OsztalyCsoportIdSearch = id, FeladatKategoriaIdSearch = feladatKategoriaId }; DataSet dataSet = helper.GetTanuloErtekelesListGridDataSet(tanuloErtekelesListModel.ToCo()); return dataSet.ToDataSourceResult(); } public static int GetOsztalyFeladatEllatasiHelye(int osztalyId) { return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFeladatEllatasiHelyByOsztalyId(osztalyId); } public static VegzosOsztalyModel GetOsztalyEvfolyama(string osztalyId) { if (int.TryParse(osztalyId, out int oID)) { OsztalyCsoportHelper h = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var lista = h.GetOsztalyCsoportEvfolyama(oID); VegzosOsztalyModel model = new VegzosOsztalyModel(); model.EvfolyamTipusa = (int?)lista[0]; model.VegzosEvfolyam = (bool)lista[1]; return model; } return null; } public static string GetEgyeniCsoportAlapertelmezettNev() { var helper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var csoportList = helper.GetCsoportok(); var egyeniCsoportokSzama = csoportList.Count(x => x.Value.IndexOf(CommonResource.EgyeniCsoportAlapertelmezettNev, StringComparison.OrdinalIgnoreCase) >= 0); return $"{CommonResource.EgyeniCsoportAlapertelmezettNev} {egyeniCsoportokSzama + 1}"; } public static CsoportModModel GetCsoportBasePropertiesMod(int? csoportID) { CsoportCO co = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetGroupByID(csoportID.Value); return new CsoportModModel() { ID = co.Id, CsoportNeve = co.CsoportNeve, CsoportTipus = co.CsoportTipus, FeladatEllatasiHelyId = co.FeladatEllatasiHelyId, OsztalyBontas = co.OsztalyBontas.ToNullableInt(), OsztalyBontasId = co.OsztalyBontasId, EvfolyamTipusa = co.EvfolyamTipusa, Vegzos = co.VegzosEvfolyamCsoport.ToNullableInt(), TervezettLetszam = co.TervezettLetszam, Keresztfeleves = co.KeresztfelevesCsoport.ToNullableInt(), CsoportNaploMegnyitasa = co.CsoportNaploMegnyitasa, CsoportNaploLezarasa = co.CsoportNaploLezarasa, MuveszetiAgId = co.MuveszetiAgId, ZenemuveszetiAgTipusId = co.ZenemuveszetiAgTipusId }; } public static TanuloSorolasModel GetModelForPartialViewCsoport(string dataType, int csoportId) { var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = tanevHelper.GetTanevInfo(); var datum = dataType == "AktData" ? (DateTime?)DateTime.Now : null; var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportTanulok(csoportId, datum, tanev.OraFelvetelKezdete, isGroupedByKilepesDatum: true); var model = TanuloBesorolasLogic.GenerateTanuloSorolasModelCsoportOsztaly(ds, isCsoportView: true); model.IsInfoView = true; return model; } public static PopUpModel GetPopUpModelForBesorolasModDatumCsoport(int tanuloId, int csoportId) { BeSorolasModel model = new BeSorolasModel(); var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloSorolasData(tanuloId, csoportId); if (ds != null) { DataRow dr = ds.Tables[0].Rows[0]; model.OsztalyCsoportId = csoportId; model.OsztalyCsoportNev = dr.Field("OsztalyCsoportNev"); model.TanuloId = tanuloId; model.TanuloNev = dr.Field("TanuloNev"); model.BesorolasDatum = dr.Field("BesorolasDatum"); } PopUpModel pm = new PopUpModel(model, "_TanuloBesorolasModPartial"); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "CsoportTanuloHelper.BesorolasWindowCancel" }); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "CsoportTanuloHelper.BesorolasWindowSave" }); return pm; } public static PopUpModel GetPopUpModelForKisorolasModDatumCsoport(int tanuloId, int csoportId) { KiSorolasModel model = new KiSorolasModel(); var ds = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloSorolasData(tanuloId, csoportId); if (ds != null) { DataRow dr = ds.Tables[0].Rows[0]; model.OsztalyCsoportId = csoportId; model.OsztalyCsoportNev = dr.Field("OsztalyCsoportNev"); model.TanuloId = tanuloId; model.TanuloNev = dr.Field("TanuloNev"); model.KisorolasDatum = dr.Field("KisorolasDatum"); } PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial"); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "CsoportTanuloHelper.KisorolasWindowCancel" }); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "CsoportTanuloHelper.KisorolasWindowSave" }); return pm; } public static PopUpModel GetPopUpModelForKisorolasCsoport(int tanuloId, int csoportId) { KiSorolasModel model = new KiSorolasModel(); DataSet ds; var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); ds = helper.GetTanuloSorolasData(tanuloId, csoportId); if (ds != null) { DataRow dr = ds.Tables[0].Rows[0]; model.OsztalyCsoportId = csoportId; model.OsztalyCsoportNev = dr.Field("OsztalyCsoportNev"); model.TanuloId = tanuloId; model.TanuloNev = dr.Field("TanuloNev"); model.KisorolasDatum = dr.Field("KisorolasDatum"); } PopUpModel pm = new PopUpModel(model, "_TanuloKisorolasModPartial"); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasCancel", Text = Resources.CommonResource.Megse, EventName = "CsoportTanuloHelper.KisorolasWindowCancel" }); pm.Buttons.Add(new ModalButtonModel() { Name = "BtnSorolasOk", Text = Resources.CommonResource.Mentes, EventName = "CsoportTanuloHelper.KisorolasWindowSave" }); return pm; } public static DateTime GetSearchDate() { var tanevData = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(); DateTime searchDate = DateTime.Now.Date; if (searchDate < tanevData.KezdoNap) { searchDate = tanevData.KezdoNap; } return searchDate; } public static void SaveNaplosorszamEsTorzslapszamBeallitasai(List naplosorszamEsTorzslapszamBeallitasaiModelList) { var helper = new TanuloTanugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()); foreach (var model in naplosorszamEsTorzslapszamBeallitasaiModelList) { helper.UpdateNaplosorszamEsTorzslapszam(model.TanuloTanugyiAdatokId, model.Naplosorszam, model.Torzslapszam); } } public static void SaveNaplosorszamListGroup(List osztalyIdList) { var helper = new TanuloTanugyiAdatokHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.UpdateNaplosorszamListGroup(osztalyIdList); } private static void ValidateTervezettLetszam(Dictionary customModelState, int? tervezettLetszam, int maxTervezettLetszam) { if (tervezettLetszam.HasValue && (tervezettLetszam < 0 || tervezettLetszam > maxTervezettLetszam)) { customModelState.Add("TervezettLetszam", string.Format(OsztalyCsoportResource.ATervezettLetszamCsak0Es1KozottLehet, 0, maxTervezettLetszam)); } } private static void ValidateOsztalyCsoportNev(Dictionary customModelState, string osztalyCsoportNev, int? id) { var letezoOsztalyCsoport = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyCsoportNev(osztalyCsoportNev, id); if (letezoOsztalyCsoport.Tables[0].Rows.Count > 0) { var osztalyVagyCsoport = letezoOsztalyCsoport.Tables[0].Rows[0].Field("OsztalyId") == null ? OsztalyCsoportResource.Csoport.ToLower() : OsztalyCsoportResource.Osztaly.ToLower(); var osztalyCsoportKategoria = string.Empty; var oktNevKategoriaId = letezoOsztalyCsoport.Tables[0].Rows[0].Field("KategoriaId") ?? -1; switch (oktNevKategoriaId) { case (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas: osztalyCsoportKategoria = "AMI"; break; case (int)OktNevelesiKategoriaEnum.Kollegium: osztalyCsoportKategoria = "Kollégiumi"; break; case (int)OktNevelesiKategoriaEnum.EGYMI: osztalyCsoportKategoria = nameof(OktNevelesiKategoriaEnum.EGYMI); break; case -1: osztalyCsoportKategoria = "duális"; break; default: osztalyCsoportKategoria = ""; break; } customModelState.Add("OsztalyCsoportNev", string.Format(OsztalyCsoportResource.ValidateLetezoOsztalyCsoport, osztalyCsoportKategoria, osztalyVagyCsoport)); } } private static void ValidateCsoportNaplo(Dictionary customModelState, DateTime? csoportNaploMegnyitasa, DateTime? csoportNaploLezarasa) { var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(); if (csoportNaploMegnyitasa.HasValue && (csoportNaploMegnyitasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| csoportNaploMegnyitasa.Value > tanev.UtolsoNap)) { customModelState.Add("CsoportNaploMegnyitasa", OsztalyCsoportResource.ACsoportnaploMegnyitasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet); } if (csoportNaploLezarasa.HasValue && (csoportNaploLezarasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| csoportNaploLezarasa.Value > tanev.UtolsoNap)) { customModelState.Add("CsoportNaploLezarasa", OsztalyCsoportResource.ACsoportnaploLezarasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet); } if (csoportNaploMegnyitasa.HasValue && csoportNaploLezarasa.HasValue && csoportNaploLezarasa.Value < csoportNaploMegnyitasa.Value) { var key = customModelState.ContainsKey("CsoportNaploLezarasa") ? "CsoportNaploLezarasa1" : "CsoportNaploLezarasa"; customModelState.Add(key, OsztalyCsoportResource.ACsoportnaploLezarasDatumaNemLehetKorabbanMintAMegnyitasDatuma); } } private static void ValidateOsztalynaplo(Dictionary customModelState, DateTime? osztalyNaploMegnyitasa, DateTime? osztalyNaploLezarasa) { var tanev = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(); if (osztalyNaploMegnyitasa.HasValue && (osztalyNaploMegnyitasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| osztalyNaploMegnyitasa.Value > tanev.UtolsoNap)) { customModelState.Add("OsztalynaploMegnyitasa", OsztalyCsoportResource.AzOsztalynaploMegnyitasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet); } if (osztalyNaploLezarasa.HasValue && (osztalyNaploLezarasa.Value < tanev.KezdoNap /*.AddMonths(-1)*/|| osztalyNaploLezarasa.Value > tanev.UtolsoNap)) { customModelState.Add("OsztalynaploLezarasa", OsztalyCsoportResource.AzOsztalynaploLezarasanakDatumaATanevElsoEsUtolsoNapjaKozottLehet); } if (osztalyNaploMegnyitasa.HasValue && osztalyNaploLezarasa.HasValue && osztalyNaploLezarasa.Value < osztalyNaploMegnyitasa.Value) { var key = customModelState.ContainsKey("OsztalynaploLezarasa") ? "OsztalynaploLezarasa1" : "OsztalynaploLezarasa"; customModelState.Add(key, OsztalyCsoportResource.AzOsztalynaploLezarasDatumaNemLehetKorabbanMintAMegnyitasDatuma); } } private static bool ValidateOsztalybontas(string[] csoportIDArray, int osztalyBontasId) { var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); DateTime? tanevElsoNapja = null; if (ClaimData.KovTanevID == ClaimData.SelectedTanevID) { var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var co = tanevHelper.GetTanevInfo(); tanevElsoNapja = co.KezdoNap; } foreach (var csoportId in csoportIDArray) { DataSet dataSet = osztalyCsoportHelper.GetOsztalyCsoportTanulok(int.Parse(csoportId), DateTime.Now, ClaimData.KovTanevID == ClaimData.SelectedTanevID ? tanevElsoNapja : null); if (!osztalyCsoportHelper.IsTanulokOsztalyTagjai(osztalyBontasId, ClaimData.KovTanevID == ClaimData.SelectedTanevID ? tanevElsoNapja.Value : DateTime.Now, dataSet.Tables[0].AsEnumerable().Select(x => x.Field("TanuloId")).ToList())) { return false; } } return true; } private static void ValidateAmiEvfolyamGroup(Dictionary customModelState, string[] osztalyCsoportIdArray, int evfolyamTipusa) { var helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (!AmiEvfoylamIdList.Contains(evfolyamTipusa)) { foreach (var id in osztalyCsoportIdArray) { if (helper.GetOsztalyCsoportFeladatKategoria(int.Parse(id)) == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas) { customModelState.Add("EvfolyamTipusa", ErrorResource.AKivalasztottOsztalyoknakNemAllithatoBeCsakAmisEvfolyamTipus); break; } } } } private static void ValidateAmiEvfolyam(Dictionary customModelState, int feladatellatasiHelyId, int evfolyamTipusa) { var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (!AmiEvfoylamIdList.Contains(evfolyamTipusa) && helper.GetFeladatKategoriaId(feladatellatasiHelyId) == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas) { customModelState.Add("EvfolyamTipusa", ErrorResource.AKivalasztottOsztalyoknakNemAllithatoBeCsakAmisEvfolyamTipus); } } private static void ValidateOsztalybontasEvfolyam(Dictionary customModelState, string csoportIdString, int evfolyamTipusa) { var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasEvfolyammal(csoportIdString, evfolyamTipusa); if (!string.IsNullOrWhiteSpace(hibasCsoportok)) { customModelState.Add("EvfolyamTipusa", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniAzEvfolyamotOsztalybontasMiatt0, hibasCsoportok)); } } private static void ValidateOsztalybontasGyogypedagogiaiLogopediai(Dictionary customModelState, string csoportIdString, bool gyogypedagogiaiLogopediai) { var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasGyogypedagogiaiLogopediai(csoportIdString, gyogypedagogiaiLogopediai); if (!string.IsNullOrWhiteSpace(hibasCsoportok)) { customModelState.Add("IsGyogypedagogiaiLogopediai", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniAGyogypedagogiaiLogopediaiOsztalybontasMiatt01, hibasCsoportok)); } } private static void ValidateOsztalybontasTechnikai(Dictionary customModelState, string csoportIdString, bool technikaiCsoport) { var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasTechnikaiCsoport(csoportIdString, technikaiCsoport); if (!string.IsNullOrWhiteSpace(hibasCsoportok)) { customModelState.Add("TechnikaiCsoport", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniATechnikaiOsztalybontasMiatt, hibasCsoportok)); } } private static void ValidateOsztalybontasFeladatellatasiHely(Dictionary customModelState, string csoportIdString, int feladatellatasiHelyId) { var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokHibasFeladatellatasiHellyel(csoportIdString, feladatellatasiHelyId); if (!string.IsNullOrWhiteSpace(hibasCsoportok)) { customModelState.Add("FeladatEllatasiHelyId", string.Format(ErrorResource.AKovetkezoCsoportoknakNemLehetBeallitaniAFeladatellatasiHelyetOsztalybontasMiatt0, hibasCsoportok)); } } private static void ValidateOsztalybontasVegzosEvfolyam(Dictionary customModelState, string csoportIdString) { var hibasCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybontasosCsoportokVegzos(csoportIdString); if (!string.IsNullOrWhiteSpace(hibasCsoportok)) { customModelState.Add("Vegzos", string.Format(ErrorResource.AKovetkezoOsztalybontottCsoportoknalVegzosJelolesNemLehetseges, hibasCsoportok)); } } #region Export public static ActionResult ExportEvfolyamAktualisLetszamadataiForOsztaly(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model) { MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetEvfolyamAktualisLetszamadataiExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate())); var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.EvfolyamAktualisLetszamadataiExportFileName }; return result; } public static ActionResult ExportOsztalyokMindenAdata(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model) { var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny; MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokMindenAdataExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()), isNszfhUjSzkt, ClaimData.IsSelectedTanev20_21OrLater, ClaimData.IsSelectedTanev21_22OrLater, ClaimData.IsSzakkepzoIntezmeny); var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.OsztalyokMindenAdataExportFileName }; return result; } public static ActionResult ExportOsztalybaJaroTanulok(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model) { MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalybaJaroTanulokExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate())); var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? OsztalyCsoportResource.OsztalybaJaroNovendekekExportFileName : OsztalyCsoportResource.OsztalybaJaroTanulokExportFileName }; return result; } public static ActionResult ExportOsztalyokAktualisLetszamadatai(OktNevelesiKategoriaEnum feladatKategoria, OsztalySearchModel model) { MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetExportOsztalyokAktualisLetszamadataiExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate())); var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.OsztalyokAktualisLetszamadataiExportFileName }; return result; } public static ActionResult ExportCsoportokMindenAdata(OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchModel model) { MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportokMindenAdataExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()), ClaimData.IsSelectedTanev21_22OrLater, ClaimData.IsSzakkepzoIntezmeny); var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = OsztalyCsoportResource.CsoportokMindenAdataExportFileName }; return result; } public static ActionResult ExportCsoportbaJaroTanulok(OktNevelesiKategoriaEnum? feladatKategoria, CsoportSearchModel model) { MemoryStream stream = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetCsoportbaJaroTanulokExcelExport(feladatKategoria, model.ConvertToCo(GetSearchDate()), ClaimData.IsActivTanev); var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = feladatKategoria == OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas ? OsztalyCsoportResource.CsoportbaJaroNovendekekExportFileName : OsztalyCsoportResource.CsoportbaJaroTanulokExportFileName }; return result; } #endregion public static int? GetOsztalyKepzesiFormaja(int osztalyId) { return new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyKepzesiFormajaByOsztalyId(osztalyId); } public static GyogypedaogiaiLogopediaiOsztalyModel GetOsztalyByOsztalyId(int osztalyId) { OsztalyCO co = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyByOsztalyId(osztalyId); return new GyogypedaogiaiLogopediaiOsztalyModel() { ID = co.Id, FeladatEllatasiHelyId = co.FeladatEllatasiHelyId, KepzesiForma = co.KepzesiForma, EvfolyamTipusa = co.EvfolyamTipusa, IsGyogypedagogiaiLogopediai = co.IsGyogypedagogiaiLogopediai, TechnikaiOsztaly = co.TechnikaiOsztaly }; } public static DataSourceResult GetOsztalyTanuloinakKepzesiJellemzoi(int osztalyId, int jegyzekTipus, DataSourceRequest request) { var ohelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); ohelper.GridParameters = Converter.GridParameter(request); var osztalyTanuloinakKepzesiJellemzoi = ohelper.GetOsztalyTanuloinakKepzesiJellemzoi(osztalyId, jegyzekTipus, ClaimData.IsActivTanev); return osztalyTanuloinakKepzesiJellemzoi.ToDataSourceResult(ohelper.GridParameters); } public static void SetCsoportMunkarendVisibility(CsoportBaseModel omodel, int? csoportId = null) { if (csoportId.HasValue) { var csoportHelper = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var (munkarenddelNemRendelkezo, munkarenddelRendelkezo) = csoportHelper.GetCsoportMunkarendSzama(csoportId.Value, ClaimData.IsActivTanev); omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsUresMegjelenik = munkarenddelNemRendelkezo > 0; omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsGridMegjelenik = munkarenddelRendelkezo > 0; } } public static void SetOsztalyMunkarendVisibility(OsztalyBaseModel omodel, int? osztalyId = null) { if (osztalyId.HasValue) { var osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var (munkarenddelNemRendelkezo, munkarenddelRendelkezo) = osztalyHelper.GetOsztalyMunkarendSzama(osztalyId.Value, ClaimData.IsActivTanev); omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsUresMegjelenik = munkarenddelNemRendelkezo > 0; omodel.OsztalyCsoportTanuloinakMunkarendjeModel.IsGridMegjelenik = munkarenddelRendelkezo > 0; } } } public class AlapkepzesOsztalyCsoportLogic : OsztalyCsoportLogic { public static void SaveOsztaly(AlapkepzesOsztalyModel model) { model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim(); if (model.ID > 0) { new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo()); } else { if (model.OsztalynaploMegnyitasa.HasValue && !model.OsztalynaploLezarasa.HasValue) model.OsztalynaploLezarasa = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetUtolsoTanitasiNapDate(); new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); } } public static void SetOsztalySzakkepzesesBasicProperties(AlapkepzesOsztalyModel omodel) { if (!omodel.SzakmacsoportId.HasValue) { omodel.SzakmacsoportId = (int)SzakmacsoportTipusEnum.Na; } if (!omodel.AgazatId.HasValue) { omodel.AgazatId = (int)AgazatTipusEnum.Na; } if (!omodel.SzakkepesitesId.HasValue) { omodel.SzakkepesitesId = (int)SzakkepesitesTipusEnum.Na; } if (!omodel.ReszSzakkepesitesId.HasValue) { omodel.ReszSzakkepesitesId = (int)ReszszakkepesitesTipusEnum.Na; } if (!omodel.AgazatUjSzktTipusId.HasValue) { omodel.AgazatUjSzktTipusId = (int)AgazatUjSzktTipusEnum.na; } if (!omodel.SzakmaTipusId.HasValue) { omodel.SzakmaTipusId = (int)SzakmaTipusEnum.na; } if (!omodel.SzakmairanyTipusId.HasValue) { omodel.SzakmairanyTipusId = (int)SzakmairanyTipusEnum.na; } } public static AlapkepzesOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null) { OsztalyCO co; if (osztalyID.HasValue) { OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); co = h.GetClassById(osztalyID.Value); } else { co = new OsztalyCO { KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas }; } if (!co.OsztalynaploMegnyitasa.HasValue) { TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } return AlapkepzesOsztalyModel.ConvertToModel(co); } public static Dictionary ValidateOsztaly(AlapkepzesOsztalyModel model) { var customModelState = ValidateBaseOsztaly(model); ValidateNyelviElokeszito(customModelState, model); if (ClaimData.IsSzakkepzoIntezmeny) ValidateSzakkepzo(customModelState, model); return customModelState; } public static void ValidateNyelviElokeszito(Dictionary customModelState, AlapkepzesOsztalyModel model) { if (!model.IsNszfhUjSzkt && nyelviElokeszitosOsztalyok.Contains(model.EvfolyamTipusa.Value) && !model.NyelviElokeszito) { customModelState.Add("NyelviElokeszito", OsztalyCsoportResource.NyelviElokeszitosOsztalytCsakAJelolonegyzetKipipalasavalLehetLetrehozniModositani); } } public static void ValidateSzakkepzo(Dictionary customModelState, AlapkepzesOsztalyModel model) { if (SzakkepzoEvfolyamIdList.Contains(model.EvfolyamTipusa.Value) && !model.JogviszonyTipusId.HasValue) { customModelState.Add("JogviszonyTipus", OsztalyCsoportResource.SzakkepzoOsztalytCsakJogviszonyKijelolesevelLehetLetrehozni); } if (!SzakkepzoEvfolyamIdList.Contains(model.EvfolyamTipusa.Value) && model.JogviszonyTipusId.HasValue) { customModelState.Add("JogviszonyTipus", OsztalyCsoportResource.OsztondijraNemJogosultSzakkepzoOsztalynalJogviszonytNemKellMegadni); } } public static Dictionary ValidateCsoport(AlapkepzesCsoportModel model) { var customModelState = ValidateBaseCsoport(model); return customModelState; } public static void SaveCsoport(AlapkepzesCsoportModel model) { model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim(); if (model.IsFromSzervezet) { model.CsoportTipusId = (int)CsoportTipusEnum.dualis_kepzesi_csoport; } if (model.ID.IsEntityId()) { new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId); } else { if (model.CsoportNaploMegnyitasa.HasValue && !model.CsoportNaploLezarasa.HasValue) model.CsoportNaploLezarasa = new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetUtolsoTanitasiNapDate(); var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); if (model.OsztalyBontasId.IsEntityId()) new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID); } } public static AlapkepzesCsoportModel GetCsoportBaseProperties(int? csoportId) { CsoportCO co; AlapkepzesCsoportModel model; if (csoportId.HasValue) { CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = cshelper.GetGroupByID(csoportId.Value); } else { co = new CsoportCO(); co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_; TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } model = AlapkepzesCsoportModel.ConvertToModel(co); return model; } public static CsoportModModel GetModelForCsoportModPopup(List csoportLista, bool isFromSzervezet = false) { CsoportModModel csmodel = new CsoportModModel(); if (csoportLista.Count == 1) { csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID); if (csmodel.CsoportTipus == (int)Enums.CsoportTipusEnum.dualis_kepzesi_csoport && !isFromSzervezet) { throw new StatusError((int)HttpStatusCode.BadRequest, ErrorResource.DualisKepzesiCsoportNemModosithato); } } else { foreach (var item in csoportLista) { csmodel.CsoportIDArrayString += item.ID.ToString() + ","; csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", "; } csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1); csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2); } return csmodel; } public static void ValidateTobbesModFeladatKategoria(string idArrayString) { if (!string.IsNullOrWhiteSpace(idArrayString)) { var osztalyCsoportHelper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var gimnaziumAlapkepzeseskentKezelendo = new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue(RendszerBeallitasTipusEnum.Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat); if (gimnaziumAlapkepzeseskentKezelendo) { if (!osztalyCsoportHelper.IsOsztalyCsoportokAzonosOktatasNevelesiFeladatTipus(idArrayString, OktatasiNevelesiFeladatEnum.MuveszetiSzakgimnazium)) { if (!osztalyCsoportHelper.IsOsztalyCsoportokAzonosKategoria(idArrayString, OktNevelesiKategoriaEnum.NevelesOktatas)) { throw new StatusError((int)HttpStatusCode.BadRequest, ErrorResource.CsakAlapkezpesesFeladatellatasiHelyhezVagyCsakMuveszetiSzakgimnaziumhozTartozoOsztalyokCsoportokatLehetEgyuttModositani); } } } else { if (!osztalyCsoportHelper.IsOsztalyCsoportokAzonosKategoria(idArrayString, OktNevelesiKategoriaEnum.NevelesOktatas)) { throw new StatusError((int)HttpStatusCode.BadRequest, ErrorResource.CsakAlapkezpesesFeladatellatasiHelyhezTartozoOsztalyokCsoportokatLehetEgyuttModositani); } } } } public static void SetOsztalyKepzesiJellemzokVisibility(AlapkepzesOsztalyModel omodel, int? osztalyId = null) { if (osztalyId.HasValue) { var osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var (SzktCount, OkjCount, NktCount, UresCount, ReszszakmaCount) = osztalyHelper.GetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint(osztalyId.Value, ClaimData.IsActivTanev); omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUjSzktMegjelenik = SzktCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsRegiSzktMegjelenik = OkjCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsNktMegjelenik = NktCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUresMegjelenik = UresCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsReszszakmakMegjelenik = ReszszakmaCount > 0; } } } public class AmiOsztalyCsoportLogic : OsztalyCsoportLogic { public static void SaveOsztaly(AmiOsztalyModel model) { model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim(); if (model.ID > 0) { new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo()); } else { new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); } } public static AmiOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null) { OsztalyCO co; if (osztalyID.HasValue) { OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = h.GetClassById(osztalyID.Value); } else { co = new OsztalyCO(); co.KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas; } if (!co.OsztalynaploMegnyitasa.HasValue) { TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } return AmiOsztalyModel.ConvertToModel(co); } public static Dictionary ValidateOsztaly(AmiOsztalyModel model) { var customModelState = ValidateBaseOsztaly(model); return customModelState; } public static void ValidateZenemuveszetiAg(Dictionary customModelState, int muveszetiAgId, int? zenemuveszetiAgTipusId) { if (muveszetiAgId == (int)MuveszetiAgEnum.ZenemuveszetiAg && !zenemuveszetiAgTipusId.HasValue) { customModelState.Add("ZenemuveszetiAgTipusId", ErrorResource.ZenemuveszetiAgTipusanakMegadasaKotelezo); } } public static Dictionary ValidateCsoport(AmiCsoportModel model) { var getOsztalyBontasEvfolyama = false; if (model.OsztalyBontas && model.OsztalyBontasId.HasValue) { List osszevontEvfolyamTipusIds = EnumExtensions.GetEvfolyamTipusDictionaryItems(ClaimData.SelectedTanevID.Value, true).Select(x => x.Id).ToList(); bool isOsszevontEvfolyamTipus = osszevontEvfolyamTipusIds.Any(x => x == GetEvfolyamTipusa(model.OsztalyBontasId.Value)); if (!isOsszevontEvfolyamTipus) { getOsztalyBontasEvfolyama = true; } } var customModelState = ValidateBaseCsoport(model, getOsztalyBontasEvfolyama, true); ValidateZenemuveszetiAg(customModelState, model.MuveszetiAgId.Value, model.ZenemuveszetiAgTipusId); return customModelState; } private static int GetEvfolyamTipusa(int osztalyBontasId) { OsztalyHelper osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var osztaly = osztalyHelper.GetClassById(osztalyBontasId); return osztaly.EvfolyamTipusa; } public static void SaveCsoport(AmiCsoportModel model) { model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim(); if (model.ID.HasValue) { new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId); } else { var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); if (model.OsztalyBontasId.HasValue && model.OsztalyBontasId.Value > 0) new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID); } } public static AmiCsoportModel GetCsoportBaseProperties(int? csoportId) { CsoportCO co; AmiCsoportModel model; if (csoportId.HasValue) { CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = cshelper.GetGroupByID(csoportId.Value); } else { co = new CsoportCO(); co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_; TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } if (co.OsztalyBontas && co.OsztalyBontasId.HasValue) { List osszevontEvfolyamTipusIds = EnumExtensions.GetEvfolyamTipusDictionaryItems(ClaimData.SelectedTanevID.Value, true).Select(x => x.Id).ToList(); bool isOsszevontEvfolyamTipus = osszevontEvfolyamTipusIds.Any(x => x == GetEvfolyamTipusa(co.OsztalyBontasId.Value)); co.OsszevontOsztaly = isOsszevontEvfolyamTipus; } model = AmiCsoportModel.ConvertToModel(co); return model; } public static CsoportModModel GetModelForCsoportModPopup(List csoportLista) { CsoportModModel csmodel = new CsoportModModel(); if (csoportLista.Count == 1) { csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID); } else { foreach (var item in csoportLista) { csmodel.CsoportIDArrayString += item.ID.ToString() + ","; csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", "; } csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1); csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2); } return csmodel; } internal static object GetOsztalyMuvesztiAgAdatok(int osztalyId) { var osztalyCo = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetClassById(osztalyId); return new { MuveszetiAgId = osztalyCo.MuveszetiAgId }; } internal static void ValidateTobbesModAutoEgyeniCsoport(string csoportIDArrayString) { var autoEgyeniCsoportok = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetAutoEgyeniCsoportok(csoportIDArrayString); if (!string.IsNullOrWhiteSpace(autoEgyeniCsoportok)) { throw new StatusError((int)HttpStatusCode.BadRequest, string.Format(ErrorResource.AutoEgyeniCsoportotNemLehetEgyuttModositaniKijeloltCsoportok0, autoEgyeniCsoportok)); } } public static void SetOsztalyKepzesiJellemzokVisibility(AmiOsztalyModel omodel, int? osztalyId = null) { if (osztalyId.HasValue) { var osztalyHelper = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var (SzktCount, OkjCount, NktCount, UresCount, ReszszakmaCount) = osztalyHelper.GetOsztalyTanuloinakSzamaKepzesiJellemzokSzerint(osztalyId.Value, ClaimData.IsActivTanev); omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUjSzktMegjelenik = SzktCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsRegiSzktMegjelenik = OkjCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsNktMegjelenik = NktCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsUresMegjelenik = UresCount > 0; omodel.OsztalyTanuloinakKepzesiJellemzoiModel.IsReszszakmakMegjelenik = ReszszakmaCount > 0; } } } public class KollegiumOsztalyCsoportLogic : OsztalyCsoportLogic { public static void SaveOsztaly(AlapkepzesOsztalyModel model) { model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim(); if (model.ID > 0) { new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo()); } else { new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); } } public static void SetOsztalySzakkepzesesBasicProperties(AlapkepzesOsztalyModel omodel) { if (!omodel.SzakmacsoportId.HasValue) { omodel.SzakmacsoportId = (int)SzakmacsoportTipusEnum.Na; } if (!omodel.AgazatId.HasValue) { omodel.AgazatId = (int)AgazatTipusEnum.Na; } if (!omodel.SzakkepesitesId.HasValue) { omodel.SzakkepesitesId = (int)SzakkepesitesTipusEnum.Na; } if (!omodel.ReszSzakkepesitesId.HasValue) { omodel.ReszSzakkepesitesId = (int)ReszszakkepesitesTipusEnum.Na; } if (!omodel.AgazatUjSzktTipusId.HasValue) { omodel.AgazatUjSzktTipusId = (int)AgazatUjSzktTipusEnum.na; } if (!omodel.SzakmaTipusId.HasValue) { omodel.SzakmaTipusId = (int)SzakmaTipusEnum.na; } if (!omodel.SzakmairanyTipusId.HasValue) { omodel.SzakmairanyTipusId = (int)SzakmairanyTipusEnum.na; } } public static AlapkepzesOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null) { OsztalyCO co; if (osztalyID.HasValue) { OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = h.GetClassById(osztalyID.Value); } else { co = new OsztalyCO { KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas }; } if (!co.OsztalynaploMegnyitasa.HasValue) { TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } return AlapkepzesOsztalyModel.ConvertToModel(co); } public static Dictionary ValidateOsztaly(AlapkepzesOsztalyModel model) { var customModelState = ValidateBaseOsztaly(model); ValidateNyelviElokeszito(customModelState, model); return customModelState; } public static void ValidateNyelviElokeszito(Dictionary customModelState, AlapkepzesOsztalyModel model) { if (nyelviElokeszitosOsztalyok.Contains(model.EvfolyamTipusa.Value) && !model.NyelviElokeszito) { customModelState.Add("NyelviElokeszito", OsztalyCsoportResource.NyelviElokeszitosOsztalytCsakAJelolonegyzetKipipalasavalLehetLetrehozniModositani); } } public static Dictionary ValidateCsoport(AlapkepzesCsoportModel model) { var customModelState = ValidateBaseCsoport(model); return customModelState; } public static void SaveCsoport(AlapkepzesCsoportModel model) { model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim(); if (model.ID.HasValue) { new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId); } else { var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); if (model.OsztalyBontasId.HasValue && model.OsztalyBontasId.Value > 0) new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID); } } public static AlapkepzesCsoportModel GetCsoportBaseProperties(int? csoportId) { CsoportCO co; AlapkepzesCsoportModel model; if (csoportId.HasValue) { CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = cshelper.GetGroupByID(csoportId.Value); } else { co = new CsoportCO(); co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_; TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } model = AlapkepzesCsoportModel.ConvertToModel(co); return model; } public static CsoportModModel GetModelForCsoportModPopup(List csoportLista) { CsoportModModel csmodel = new CsoportModModel(); if (csoportLista.Count == 1) { csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID); } else { foreach (var item in csoportLista) { csmodel.CsoportIDArrayString += item.ID.ToString() + ","; csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", "; } csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1); csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2); } return csmodel; } } public class EGYMIOsztalyCsoportLogic : OsztalyCsoportLogic { public static void SaveOsztaly(AlapkepzesOsztalyModel model) { model.OsztalyNev = model.OsztalyNev.ReplaceMultipleSpacesAndTrim(); if (model.ID > 0) { new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo()); } else { new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); } } public static void SetOsztalySzakkepzesesBasicProperties(AlapkepzesOsztalyModel omodel) { if (!omodel.SzakmacsoportId.HasValue) { omodel.SzakmacsoportId = (int)SzakmacsoportTipusEnum.Na; } if (!omodel.AgazatId.HasValue) { omodel.AgazatId = (int)AgazatTipusEnum.Na; } if (!omodel.SzakkepesitesId.HasValue) { omodel.SzakkepesitesId = (int)SzakkepesitesTipusEnum.Na; } if (!omodel.ReszSzakkepesitesId.HasValue) { omodel.ReszSzakkepesitesId = (int)ReszszakkepesitesTipusEnum.Na; } if (!omodel.AgazatUjSzktTipusId.HasValue) { omodel.AgazatUjSzktTipusId = (int)AgazatUjSzktTipusEnum.na; } if (!omodel.SzakmaTipusId.HasValue) { omodel.SzakmaTipusId = (int)SzakmaTipusEnum.na; } if (!omodel.SzakmairanyTipusId.HasValue) { omodel.SzakmairanyTipusId = (int)SzakmairanyTipusEnum.na; } } public static AlapkepzesOsztalyModel GetOsztalyBasicProperties(int? osztalyID = null) { OsztalyCO co; if (osztalyID.HasValue) { OsztalyHelper h = new OsztalyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = h.GetClassById(osztalyID.Value); } else { co = new OsztalyCO { KepzesiForma = (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas }; } if (!co.OsztalynaploMegnyitasa.HasValue) { TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.OsztalynaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } return AlapkepzesOsztalyModel.ConvertToModel(co); } public static Dictionary ValidateOsztaly(AlapkepzesOsztalyModel model) { var customModelState = ValidateBaseOsztaly(model); ValidateNyelviElokeszito(customModelState, model); return customModelState; } public static void ValidateNyelviElokeszito(Dictionary customModelState, AlapkepzesOsztalyModel model) { if (nyelviElokeszitosOsztalyok.Contains(model.EvfolyamTipusa.Value) && !model.NyelviElokeszito) { customModelState.Add("NyelviElokeszito", OsztalyCsoportResource.NyelviElokeszitosOsztalytCsakAJelolonegyzetKipipalasavalLehetLetrehozniModositani); } } public static Dictionary ValidateCsoport(AlapkepzesCsoportModel model) { var customModelState = ValidateBaseCsoport(model); return customModelState; } public static void SaveCsoport(AlapkepzesCsoportModel model) { model.CsoportNeve = model.CsoportNeve.ReplaceMultipleSpacesAndTrim(); if (model.ID.HasValue) { new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateCo(model.ConvertToCo(), ClaimData.FelhasznaloId); } else { var newID = new CsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertCo(model.ConvertToCo()); if (model.OsztalyBontasId.HasValue && model.OsztalyBontasId.Value > 0) new TanevrendHelper(ConnectionTypeExtensions.GetSessionConnectionType()).InsertTanevRendjeNewBontottCsoport(model.OsztalyBontasId.Value, newID); } } public static AlapkepzesCsoportModel GetCsoportBaseProperties(int? csoportId) { CsoportCO co; AlapkepzesCsoportModel model; if (csoportId.HasValue) { CsoportHelper cshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); co = cshelper.GetGroupByID(csoportId.Value); } else { co = new CsoportCO(); co.CsoportTipus = (int)CsoportTipusEnum.iskolai_csoport_tanorai_celu_; TanevHelper thelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanev = thelper.GetTanevInfo(); co.CsoportNaploMegnyitasa = tanev.KezdoNap.AddMonths(0); } model = AlapkepzesCsoportModel.ConvertToModel(co); return model; } public static CsoportModModel GetModelForCsoportModPopup(List csoportLista) { CsoportModModel csmodel = new CsoportModModel(); if (csoportLista.Count == 1) { csmodel = GetCsoportBasePropertiesMod(csoportLista[0].ID); } else { foreach (var item in csoportLista) { csmodel.CsoportIDArrayString += item.ID.ToString() + ","; csmodel.CsoportNevArray += item.CsoportNeve.ToString() + ", "; } csmodel.CsoportIDArrayString = csmodel.CsoportIDArrayString.Remove(csmodel.CsoportIDArrayString.Length - 1); csmodel.CsoportNevArray = csmodel.CsoportNevArray.Remove(csmodel.CsoportNevArray.Length - 2); } return csmodel; } } }