using System; using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Exceptions; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.Core; using Kreta.Core.ConnectionType; using Kreta.Core.Exceptions; using Kreta.DataAccess.Interfaces; using Kreta.DataAccessManual; using Kreta.DataAccessManual.Interfaces; using Kreta.DataAccessManual.Util; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework; using Kreta.Framework.Entities; using Kreta.Resources; namespace Kreta.BusinessLogic.Helpers { public class TanevrendHelper : LogicBase { public TanevrendHelper(IConnectionType connectionType) : base(connectionType) { } public DataSet GetTanevredhezTartozoOsztCsopList(int tanevrendId = -1, int? feladatKategoriaId = null, int? mukodesiHelyId = null, int? feladatEllatasiHelyId = null) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(GridParameters); return dal.GetTanevredhezTartozoOsztCsopList(TanevId, tanevrendId, feladatKategoriaId, mukodesiHelyId, feladatEllatasiHelyId); }); } /// INFO @DevKornel: Mobil használja public DataSet GetTanevrendekOsztalyCsoportokkal(DateTime? start = null, DateTime? end = null, int? tanuloId = null) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(GridParameters); return dal.ListTanevRendekOsztalyCsoportokkal(TanevId, start, end, tanuloId); }); } /// INFO @DevKornel: Mobil használja public TanevRendjeListsCO GetTanevRendjeLists(DataTable tanevrendek) { var result = new TanevRendjeListsCO(); foreach (DataRow row in tanevrendek.Rows) { DateTime datum = Convert.ToDateTime(row["Datum"]); var ocsId = SDAConvert.ToInt32(row["OsztalyCsoportId"]); var isOrarendiNap = SDAConvert.ToBooleanFromTF(row["OrarendiNap"]) && !OrarendHelper.NemTanitasiNapTipusok.Contains(SDAConvert.ToInt32(row["NapTip"])); if (ocsId < 1) { if (!isOrarendiNap) { result.GlobalTiltas.Add(datum); } else { result.GlobalEngedelyezes.Add(datum); } } else { if (isOrarendiNap) { result.OcsEngedelyezes.Add(new Tuple(datum, ocsId)); } else { result.OcsTiltas.Add(new Tuple(datum, ocsId)); } } } return result; } public Dictionary GetTanevHetirendTipusok() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); var ds = dal.GetTanevHetirendTipusok(TanevId); var dictionary = new Dictionary(); if (ds != null && ds.Tables[0].Rows != null) { foreach (DataRow row in ds.Tables[0].Rows) dictionary.Add(row["HetirendId"].ToString(), row["Hetirend"].ToString()); } return dictionary; }); } public TanevrendCO GetTanevrendById(int tanevRendId) { return Dal.CustomConnection.Run(ConnectionType, h => { var entity = h.TanevRendjeDal().Get(tanevRendId); var co = new TanevrendCO(); co.ID = entity.ID; co.Tanev = entity.TanevId; co.TanevNeve = entity.Tanev.Nev; if (entity.HetNapja != null) { co.Nap = entity.HetNapja; } co.NapTip = entity.NapTipusa; co.Hetirend = entity.HetiRend; co.Megjegyzes = entity.Megjegyzes; co.Datum = entity.Datum; co.OsszesCsop = entity.OsszesCsoportraVonatkozik ?? false; co.CsengetesiRend = entity.CsengetesiRendId; co.ElteroOrarendSzerintiTanitasNapDatum = entity.ElteroNapDatuma; co.UresOrarend = entity.IsUresOrarend; if (co.CsengetesiRend == -1) { co.CsengetesiRend = GetTanevrendDefaultCsengetesiRend(entity.TanevId); } if (!co.OsszesCsop) { co.Csoportok = GetTanevRendjeOsztalyCsoportokText(entity.ID); } else { co.Csoportok = "Összes osztály és csoport"; } var dal = h.TanevRendjeDal(); co.IsElteroNapModosithato = !dal.GetKezzelrogzitettOrarendiOra(entity.Datum); return co; }); } public string GetTanevRendjeOsztalyCsoportokText(int tanevRendjeId) { Dictionary tanevRendjeOsztalyCsoportokDictionary = GetTanevRendjeOsztalyCsoportokDictionary(new List { tanevRendjeId }); string result = tanevRendjeOsztalyCsoportokDictionary.FirstOrDefault(x => x.Key == tanevRendjeId).Value; return result; } public Dictionary GetTanevRendjeOsztalyCsoportokDictionary(List tanevRendjeIds) { DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.TanevRendjeDal().GetTanevRendjeOsztalyCsoportok(TanevId, tanevRendjeIds)); var result = new Dictionary(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { int id = SDAConvert.ToInt32(dataRow["ID"]); string osztalyCsoportNev = SDAConvert.ToString(dataRow["OsztalyCsoportNev"]); if (result.ContainsKey(id)) { result[id] += $@", {osztalyCsoportNev}"; } else { result.Add(id, osztalyCsoportNev); } } return result; } public bool IsTanitasiNap(DateTime date, int? osztalycsoportId) { var osztalyTanevrendjei = GetOsztalycsoportTanevrendje(date, osztalycsoportId ?? 0); if (osztalyTanevrendjei.Any(x => !x.Globalis && (OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus) || !x.OrarendiNap))) { return false; //ha van benne az osztályra szabott tiltás } if (osztalyTanevrendjei.Any(x => !x.Globalis && !OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus))) { return true; //ha van benne az osztályra szabott engedélyezés } if (osztalyTanevrendjei.Any(x => x.Globalis && !OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus))) { return true; //ha van benne globalis engedélyezés } if (osztalyTanevrendjei.Any(x => x.Globalis && (OrarendHelper.NemTanitasiNapTipusok.Contains(x.Naptipus) || !x.OrarendiNap))) { return false; //ha van benne globalis tiltás } var foglalkozasok_Rogzitese_Hetvegere = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue(RendszerBeallitasTipusEnum.Foglalkozasok_Rogzitese_Hetvegere); switch (foglalkozasok_Rogzitese_Hetvegere) { case FoglalkozasokRogziteseHetvegere.Engedelyezett: return true; case FoglalkozasokRogziteseHetvegere.CsakSzombat: return date.DayOfWeek != DayOfWeek.Sunday; case FoglalkozasokRogziteseHetvegere.NemEngedelyezett: default: return date.DayOfWeek != DayOfWeek.Saturday && date.DayOfWeek != DayOfWeek.Sunday; } } public bool IsOrarendiNap(DateTime date, int? osztalycsoportId, bool isFromSzervezet = false) { if (isFromSzervezet) { return true; } var osztalyTanevrendjei = GetOsztalycsoportTanevrendje(date, osztalycsoportId ?? 0); if (osztalyTanevrendjei.Any(x => !x.Globalis && !x.OrarendiNap)) { return false; //ha van benne az osztályra szabott tiltás } if (osztalyTanevrendjei.Any(x => !x.Globalis && x.OrarendiNap)) { return true; //ha van benne az osztályra szabott engedélyezés } if (osztalyTanevrendjei.Any(x => x.Globalis && !x.OrarendiNap)) { return false; //ha van benne globalis tiltás } if (osztalyTanevrendjei.Any(x => x.Globalis && x.OrarendiNap)) { return true; //ha van benne globalis engedélyezés } var foglalkozasok_Rogzitese_Hetvegere = new SystemSettingsHelper(ConnectionType).GetSystemSettingValue(RendszerBeallitasTipusEnum.Foglalkozasok_Rogzitese_Hetvegere); switch (foglalkozasok_Rogzitese_Hetvegere) { case FoglalkozasokRogziteseHetvegere.Engedelyezett: return true; case FoglalkozasokRogziteseHetvegere.CsakSzombat: return date.DayOfWeek != DayOfWeek.Sunday; case FoglalkozasokRogziteseHetvegere.NemEngedelyezett: default: return date.DayOfWeek != DayOfWeek.Saturday && date.DayOfWeek != DayOfWeek.Sunday; } } public List GetOsztalycsoportTanevrendje(DateTime? date, int osztalycsoportId, bool? osszesCsoportVonatkozokat = null) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); var ds = dal.GetOsztalycsoportTanevrendje(date, osztalycsoportId, IntezmenyId, TanevId, osszesCsoportVonatkozokat); var result = new List(); foreach (DataRow rend in ds.Tables[0].Rows) { var item = new TanevrendOsztalycsoportCO { TanevrendId = SDAConvert.ToInt32(rend["ID"]), Hetirend = SDAConvert.ToInt32(rend["C_HETIREND"]), Csengetesirend = SDAConvert.ToInt32(rend["C_CSENGETESIRENDID"]), Naptipus = SDAConvert.ToInt32(rend["C_NAPTIPUSA"]), HetNapja = SDAConvert.ToInt32(rend["C_HETNAPJA"]), OrarendiNap = SDAConvert.ToBooleanFromTF(rend["C_ORARENDINAP"]), Globalis = SDAConvert.ToBooleanFromTF(rend["C_OSSZESCSOPORTRAVONATKOZIK"]), Datum = SDAConvert.ToDateTime(rend["C_DATUM"]).Value }; result.Add(item); } return result; }); } public List GetTanevRendjeCalendarData(DateTime start, DateTime end) { var tanevEsemenyeiDS = Dal.CustomConnection.Run(ConnectionType, (h) => { var orarendiOraDal = h.OrarendiOra(); return orarendiOraDal.GetTanevEsemenyeiOrarend(start, end); }); var tanevEsemenyeiLista = new List(); foreach (DataRow row in tanevEsemenyeiDS.Tables[0].Rows) { DateTime datum = Convert.ToDateTime(row["Datum"]); var orarendiEvent = new OrarendCO.Event(); orarendiEvent.allDay = true; orarendiEvent.start = datum; orarendiEvent.end = datum + new TimeSpan(10, 10, 10); orarendiEvent.title = (SDAConvert.ToInt32(row["KapcsCsopSzam"]) <= 0 ? row["NapTip_DNAME"].ToString() : "*" + row["NapTip_DNAME"].ToString()); orarendiEvent.Tema = SDAConvert.ToString(row["Megjegyzes"]); orarendiEvent.id = SDAConvert.ToInt32(row["ID"]); orarendiEvent.color = SetColorByType(Convert.ToInt32(row["NapTip"])); tanevEsemenyeiLista.Add(orarendiEvent); } return tanevEsemenyeiLista; } public DateTime GetUtolsoTanitasiNapDate() { return Dal.CustomConnection.Run(ConnectionType, h => { var result = h.TanevRendjeDal().GetUtolsoTanitasiNapDate(IntezmenyId, TanevId); return result; }); } public DateTime? GetNapDate(NapTipusEnum napEnum, bool returnDefaultValue = true) { return Dal.CustomConnection.Run(ConnectionType, h => { var result = h.TanevRendjeDal().GetNapDate(IntezmenyId, TanevId, napEnum, returnDefaultValue); return result; }); } public DateTime GetNapDate(NapTipusEnum napEnum) { return Dal.CustomConnection.Run(ConnectionType, h => { var result = h.TanevRendjeDal().GetNapDate(IntezmenyId, TanevId, napEnum); return result.Value; }); } public DateTime GetElsoTanitasiNapDate() { return Dal.CustomConnection.Run(ConnectionType, h => { var result = h.TanevRendjeDal().GetElsoTanitasiNapDate(IntezmenyId, TanevId); return result; }); } public bool HasTanitasiNap(DateTime date) { return Dal.CustomConnection.Run(ConnectionType, h => { var naptariNapHelper = new NaptariNapHelper(new DalHandlerConnectionType(ConnectionType, h)); var tanitasiNapIdList = naptariNapHelper.GetTanitasiNapIdList(); return h.TanevRendjeDal().HasTanitasiNap(new DateTime(date.Year, date.Month, date.Day), tanitasiNapIdList, TanevId); }); } public int GetTanevrendDefaultCsengetesiRend(int tanevId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); return dal.GetTanevrendDefaultCsengetesiRend(tanevId); }); } public string GetTanevrendValueString(int tanevId, int? id) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); return dal.GetTanevrendCsengetesiRendValue(id, tanevId); }); } public List GetMarFelvettKiemeltTanevEsemenyek() { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); return dal.GetMarFelvettKiemeltTanevEsemenyTipusok(TanevId); }); } public DataSet GetTanevrendByCsengRend(int csRendId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(GridParameters); return dal.GetTanevrendekByCsengetesiRend(TanevId, csRendId); }); } public bool GetVanTanevRendjeEsemenyNemKotottMunkaido(DateTime startDatum, DateTime endDatum) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); return dal.GetVanTanevRendjeEsemenyNemKotottMunkaido(TanevId, startDatum, endDatum); }); } public void CheckTanevRendjeUtkozes(DateTime datum, List selectedOsztalyCsoportIdList, bool IsGlobalis, int? tanevrendjeId) { var tanevrendek = GetVanTanevRendje(datum, tanevrendjeId); if (IsGlobalis) { if (tanevrendek.Any(a => !a.OsztalyCsoportId.HasValue)) { throw new BlException(OrarendResource.MarVanTanevrendjeEsemeny); } } else { var osztalyUtkozesek = tanevrendek.Where(a => a.OsztalyCsoportId.HasValue && selectedOsztalyCsoportIdList.Contains(a.OsztalyCsoportId.Value)).ToList(); if (osztalyUtkozesek.Any()) { var hibaUzenet = OrarendResource.OsztalyCsoporthozMarTartozikTanevRend + string.Join(",", osztalyUtkozesek.Select(a => a.OsztalyCsoportNev)); throw new BlException(hibaUzenet); } } } public bool HasTanevRendjeEsemeny(DateTime datum, int? osztalyId) { var tanevrendek = GetVanTanevRendje(datum, null); if (osztalyId.HasValue) { var masOsztalyokTanevrendjei = tanevrendek.Where(a => a.OsztalyCsoportId.HasValue && a.OsztalyCsoportId.Value != osztalyId).ToList(); tanevrendek = tanevrendek.Except(masOsztalyokTanevrendjei).ToList(); } var tanevrendlist = tanevrendek.Where(x => x.IsRendkivuliTanitasiNap || (x.HetNapja != 0 && x.HetNapja != x.AlapHetnapja) || x.IsUresOrarend).ToList(); var result = tanevrendlist.Where(x => x.NapTipusaId != (int)NapTipusEnum.elso_tanitasi_nap && x.NapTipusaId != (int)NapTipusEnum.utolso_tanitasi_nap).Any(); return result; } private List GetVanTanevRendje(DateTime datum, int? alapTanevrendId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); var ds = dal.GetTanevRendjeByDatum(datum, TanevId, IntezmenyId); var tanevRendek = new List(); foreach (DataRow item in ds.Tables[0].Rows) { var tanevrendId = SDAConvert.ToInt32(item["TanevrendId"]); if (alapTanevrendId == tanevrendId) { continue; } var rend = new TanevrendOsztalyokkalCO(); rend.TanevrendId = tanevrendId; rend.IsGlobal = SDAConvert.ToBooleanFromTF(item["IsGlobal"]); rend.OsztalyCsoportId = item["OsztalyCsoportId"] != DBNull.Value ? SDAConvert.ToInt32(item["OsztalyCsoportId"]) : (int?)null; rend.OsztalyCsoportNev = item["OsztalyCsoportNev"] != DBNull.Value ? item["OsztalyCsoportNev"].ToString() : string.Empty; rend.HetNapja = SDAConvert.ToInt32(item["HetNapja"]); rend.NapTipusaId = SDAConvert.ToInt32(item["NapTipusa"]); rend.AlapHetnapja = SDAConvert.ToInt32(item["EredetiHetNapja"]); rend.IsRendkivuliTanitasiNap = SDAConvert.ToInt32(item["NapTipusa"]) == (int)NapTipusEnum.RendkivuliTanitasiNap; rend.IsUresOrarend = SDAConvert.ToBooleanFromTF(item["IsUresOrarend"]); tanevRendek.Add(rend); } return tanevRendek; }); } public void DeleteTanevRendjeByID(int tanevRendId, bool isKezzelRogzitesTorles) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); var entity = dal.Get(tanevRendId); if (entity.NapTipusa == (int)Enums.NapTipusEnum.elso_tanitasi_nap || entity.NapTipusa == (int)Enums.NapTipusEnum.elso_felev_vege || entity.NapTipusa == (int)Enums.NapTipusEnum.utolso_tanitasi_nap) { //A tanév első tanítási napja, az első félévének vége és a tanév utolsó napja nem törölhető! throw new CannotBeDeletedException(TanevResource.ATanevElsoTanitasiNapjaAzElsoFelevenekVegeEsATanevUtolsoNapjaNemTorolheto); } var tanevDal = h.TanevRendjeDal(); /*Ha van kapcsolódó osztály a tanévrendéhez akkor azokat a kapcsolatokat törölni kell*/ if (entity.OsztalyCsoport.Count > 0) { foreach (var item in entity.OsztalyCsoport) { tanevDal.DeleteEgyediNapOsztalycsoport(tanevRendId, item.ID, FelhasznaloId); } dal.RemoveKapcsolodoOsztalyCsoportok(entity); } tanevDal.DeleteEgyediNap(tanevRendId, isKezzelRogzitesTorles, FelhasznaloId); tanevDal.Delete(entity); var adatszotarDal = h.AdatszotarDAL(); adatszotarDal.GenerateNaptariNapok(IntezmenyId, TanevId); dal.GenerateOrarend(entity.IntezmenyId, entity.TanevId, null, entity.Datum, entity.NapTipusa); }); } public void SaveOrUpdateTanevRendje(TanevrendCO co, Dictionary osztalyCsoportDic, List selectedOsztalyCsoportIdList) { try { Dal.CustomConnection.Run(ConnectionType, (h) => { var dal = h.TanevRendjeDal(); var entity = dal.Get(); bool isModification = (co.ID.IsEntityId()); bool egyediNapValtozott = false; bool datumValtozott = false; bool uresOrarendValtozott = false; bool mindenkireVonatkozikValtozott = false; if (isModification) { entity = dal.Get(co.ID.Value); egyediNapValtozott = entity.EgyediNap != co.IsEgyediNap; datumValtozott = entity.ElteroNapDatuma != co.ElteroOrarendSzerintiTanitasNapDatum; uresOrarendValtozott = entity.IsUresOrarend != co.UresOrarend; mindenkireVonatkozikValtozott = entity.OsszesCsoportraVonatkozik != co.OsszesCsop; } entity.Aktiv = true; entity.Datum = co.Datum; entity.OrarendiNap = co.OrarendiNap; entity.Megjegyzes = co.Megjegyzes; entity.OsszesCsoportraVonatkozik = co.OsszesCsop; entity.TanevId = co.Tanev; entity.HetNapja = co.Nap; entity.EgyediNap = co.IsEgyediNap; entity.IsUresOrarend = co.UresOrarend; entity.ElteroNapDatuma = co.ElteroOrarendSzerintiTanitasNapDatum; if (co.NapTip.HasValue && co.NapTip > 0) { entity.NapTipusa = co.NapTip.Value; } if (co.Hetirend.HasValue) { entity.HetiRend = co.Hetirend.Value; } if (co.CsengetesiRend.HasValue && co.CsengetesiRend.Value > 0) { entity.CsengetesiRendId = co.CsengetesiRend.Value; } else { entity.CsengetesiRendId = -1; } if (isModification) { dal.FullUpdate(entity, !co.OsszesCsop, osztalyCsoportDic, TanevId, FelhasznaloId, co.OsszesCsop); if (egyediNapValtozott) { if (co.IsEgyediNap == false) { dal.DeleteEgyediNap(entity.ID, true, FelhasznaloId); } else if (!co.UresOrarend) { dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev); } } else if (!egyediNapValtozott && co.IsEgyediNap && (datumValtozott || co.UresOrarend)) { if (co.UresOrarend && !uresOrarendValtozott && !mindenkireVonatkozikValtozott) { if (!co.OsszesCsop) { foreach (var item in osztalyCsoportDic.Where(x => x.Value == true)) { dal.DeleteEgyediNapOsztalycsoport(entity.ID, item.Key, FelhasznaloId); } foreach (var item in osztalyCsoportDic.Where(x => x.Value == false)) { dal.InsertEgyediNapOsztalycsoport(entity.ID, item.Key, entity.IntezmenyId, entity.TanevId); } } } else dal.DeleteEgyediNap(entity.ID, true, FelhasznaloId); if (!co.UresOrarend) dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev); } else if (!egyediNapValtozott && co.IsEgyediNap && co.OsszesCsop) { dal.DeleteEgyediNap(entity.ID, false, FelhasznaloId); dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev); } else if (!egyediNapValtozott && co.IsEgyediNap && !co.OsszesCsop) { dal.DeleteEgyediNap(entity.ID, false, FelhasznaloId); foreach (var item in selectedOsztalyCsoportIdList) { dal.InsertEgyediNapOsztalycsoport(entity.ID, item, entity.IntezmenyId, entity.TanevId); } } } else { var tanevrendjeId = dal.Insert(entity, !co.OsszesCsop, osztalyCsoportDic, TanevId, FelhasznaloId); if (!co.UresOrarend && co.OsszesCsop) { if (co.IsEgyediNap) { dal.InsertEgyediNap(entity.ID, co.IntezmenyId, co.Tanev); } } else { if (co.UresOrarend && !co.OsszesCsop) { foreach (var item in osztalyCsoportDic) { dal.DeleteEgyediNapOsztalycsoport(entity.ID, item.Key, FelhasznaloId); } } } } var adatszotarDal = h.AdatszotarDAL(); adatszotarDal.GenerateNaptariNapok(IntezmenyId, TanevId); if (entity.NapTipusa == (int)NapTipusEnum.elso_tanitasi_nap || entity.NapTipusa == (int)NapTipusEnum.utolso_tanitasi_nap) { NemTanitasiIdoszakbaTartozoTanitasiOrakTorlese(h, entity); } dal.GenerateOrarend(entity.IntezmenyId, entity.TanevId, null, entity.Datum, entity.NapTipusa); }); } catch (EntityDeleteFailedException e) { throw new BlException(IntezmenyResource.NemModositahatoATanevRendjeMertABeallitottDatumertekOlyanOratTorolneAzOraErvenyessegiIdejeMiattAmelynekKapcsolataVan, e); } catch (Exception e) { throw new BlException(StringResourcesUtil.GetString(4945) /*Nem sikerült a mentés!*/, e); } } public bool IsRendkivuliTanitasiNap(DateTime datum) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); return dal.IsRendkivuliTanitasiNap(TanevId, datum); }); } private void NemTanitasiIdoszakbaTartozoTanitasiOrakTorlese(IDalHandler handler, ITanevRendje entity) { NapTipusEnum tanevRendTipus = (NapTipusEnum)entity.NapTipusa; var dal = handler.OrarendiOra(); if (tanevRendTipus == NapTipusEnum.elso_tanitasi_nap) { dal.DeleteTanevKezdeteElttiOrak(entity.Datum, TanevId); } if (tanevRendTipus == NapTipusEnum.utolso_tanitasi_nap) { dal.DeleteTanevVegeUtaniOrak(entity.Datum.AddDays(1), TanevId); } } private string SetColorByType(int typeId) { switch (typeId) { case (int)NapTipusEnum.tanitasi_nap: return "#CCCCCC"; case (int)NapTipusEnum.teli_szunet: case (int)NapTipusEnum.tavaszi_szunet: case (int)NapTipusEnum.oszi_szunet: case (int)NapTipusEnum.tanitasi_szunet: return "#91F578"; case (int)NapTipusEnum.munkaszuneti_nap: return "#90AD89"; case (int)NapTipusEnum.unnepnap: return "#A65A5A"; case (int)NapTipusEnum.roviditett_orakat_tartalmazo_tanitasi_nap: return "#99C4F2"; case (int)NapTipusEnum.tanitas_nelkuli_munkanap: return "#007BFF"; default: return "#FCD158"; } } public bool IsTanoraOrNapirendRogzitheto(int naptipusId) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); return dal.IsTanoraOrNapirendRogzitheto(naptipusId, IntezmenyId, TanevId); }); } public void InsertTanevRendjeNewBontottCsoport(int osztalyId, int bontottCsoportId) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); dal.InsertTanevRendjeNewBontottCsoport(osztalyId, bontottCsoportId); dal.GenerateOrarend(IntezmenyId, TanevId, bontottCsoportId, null, null); }); } public void DeleteTanevRendjeNewBontottCsoport(int osztalyId, int bontottCsoportId, int modifierId) { Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); dal.DeleteTanevRendjeNewBontottCsoport(osztalyId, bontottCsoportId, modifierId); dal.GenerateOrarend(IntezmenyId, TanevId, bontottCsoportId, null, null); }); } public bool EnabledNemKotottMunkaidoRogzitese(DateTime date) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); var ds = dal.EnabledNemKotottMunkaidoRogzitese(date, IntezmenyId, TanevId); if (ds.Tables[0].Rows.Count == 0 || !SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[0]["C_OSSZESCSOPORTRAVONATKOZIK"])) { return true; } var enabledNemKotottMunkaidoRogzitese = SDAConvert.ToBooleanFromTF(ds.Tables[0].Rows[0]["C_ISLENEMKOTOTTMUNKAIDO"]); return enabledNemKotottMunkaidoRogzitese; }); } public List GetTanevRendjeNaptipusTulajdonsagokkal(int? osztalyCsoportId = null) { return Dal.CustomConnection.Run(ConnectionType, h => { var dal = h.TanevRendjeDal(); var ds = dal.GetTanevRendjeNaptipusTulajdonsagokkal(TanevId, osztalyCsoportId); return ds.Tables[0].AsEnumerable().Select(row => new TanevrendOsztalyokkalNaptipusTulajdonsagokkalCO() { TanevrendId = SDAConvert.ToInt32(row["ID"]), Datum = SDAConvert.ToDateTime(row["C_DATUM"]), Hetirend = SDAConvert.ToInt32(row["C_HETIREND"]), HetNapja = SDAConvert.ToInt32(row["C_HETNAPJA"]), Naptipus = SDAConvert.ToInt32(row["C_NAPTIPUSA"]), IsEgyediNap = SDAConvert.ToBooleanFromTF(row["C_EGYEDINAP"]), ElteroNapDatuma = SDAConvert.ToDateTime(row["C_ELTERONAPDATUMA"]), OsztalyCsoportId = SDAConvert.ToNullableInt32(row["C_OSZTALYCSOPORTID"]), OsztalyCsoportNev = SDAConvert.ToString(row["C_NEV"]), IsTanitasi = SDAConvert.ToBooleanFromTF(row["C_ISTANORAI"]), IsTanoranKivuli = SDAConvert.ToBooleanFromTF(row["C_ISTANORANKIVULI"]), OrarendiNap = SDAConvert.ToBooleanFromTF(row["C_ORARENDINAP"]), Globalis = SDAConvert.ToBooleanFromTF(row["C_OSSZESCSOPORTRAVONATKOZIK"]), }).ToList(); }); } public List GetTanevRendjeCoList() { DataSet dataSet = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.TanevRendjeDal().GetTanevRendjeData(TanevId)); var result = new List(); foreach (DataRow dataRow in dataSet.Tables[0].Rows) { var co = new TanevRendjeItemCo(dataRow); result.Add(co); } Dictionary tanevRendjeOsztalyCsoportokDictionary = GetTanevRendjeOsztalyCsoportokDictionary(result.Select(x => x.Id).ToList()); foreach (TanevRendjeItemCo co in result) { var erintettOsztalyCsoportText = tanevRendjeOsztalyCsoportokDictionary.SingleOrDefault(x => x.Key == co.Id).Value ?? string.Empty; if (!co.IsOsszesCsoportraVonatkozik) { if (co.VonatkozoOsztalyCsoportSzam > 1) { co.ErintettOsztalyCsoportText = IntezmenyResource.Tobb; } else if (co.VonatkozoOsztalyCsoportSzam == 1) { co.ErintettOsztalyCsoportText = erintettOsztalyCsoportText; } } else { co.ErintettOsztalyCsoportText = IntezmenyResource.Osszes; } } return result; } } }