using System; using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Web.Areas.Orarend.Logic; using Kreta.Web.Areas.Orarend.Models; using Kreta.Web.Helpers; namespace Kreta.Web.Areas.Tanar.Logic { public static class FogadooraLogic { public static FogadooraModel SetFogadooraDate(FogadooraModel model) { var FogadoOraKezdete = new DateTime(model.FogadoOraDatuma.Year, model.FogadoOraDatuma.Month, model.FogadoOraDatuma.Day, model.FogadoOraKezdete.Hour, model.FogadoOraKezdete.Minute, 0, DateTimeKind.Utc); var FogadoOraVege = new DateTime(model.FogadoOraDatuma.Year, model.FogadoOraDatuma.Month, model.FogadoOraDatuma.Day, model.FogadoOraVege.Hour, model.FogadoOraVege.Minute, 0, DateTimeKind.Utc); model.FogadoOraKezdete = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(FogadoOraKezdete, FogadoOraKezdete); model.FogadoOraVege = OrarendiOraLogic.CreateLocalDateTimeBasedOnDateAndTime(FogadoOraVege, FogadoOraVege); return model; } public static FogadooraCo ConvertModelToCo(FogadooraModel model) { return new FogadooraCo() { Id = model.Id, TeremId = model.TeremId.Value, EgysegnyiIdopontok = model.EgysegnyiIdopontok, FogadoOraDatuma = model.FogadoOraDatuma, FogadoOraKezdete = model.FogadoOraKezdete, FogadoOraVege = model.FogadoOraVege, IsNemKotottMunkaido = model.IsNemKotottMunkaido, IsIdosavraOsztas = model.IsIdosavraOsztas, JelentkezesekKezelese = model.JelentkezesekKezelese, ModifiedOsztalyCsoportList = model.ModifiedOsztalyCsoportList, SelectedOsztalyCsoportIdList = model.SelectedOsztalyCsoportIdList, Rendszeresseg = model.Rendszeresseg, FogadooraTipusEnumId = model.JelentkezesekKezelese ? (model.IsIdosavraOsztas.HasValue && model.IsIdosavraOsztas.Value ? (int)FogadooraTipusEnum.JelentkezhetoDarabolt : (int)FogadooraTipusEnum.Jelentkezheto) : (int)FogadooraTipusEnum.NemJelentkezheto, RendszeresFogadooraElsoDatuma = model.RendszeresFogadooraElsoDatuma, RendszeresFogadooraUtolsoDatuma = model.RendszeresFogadooraUtolsoDatuma, IsEgyalkalomModositasa = model.IsEgyAlkalomModosul, IsFaliujsagonMegjelenjen = model.IsFaliujsagonMegjelenjen, FaliujsagErvenyessegKezdete = model.FaliujsagErvenyessegKezdete, FaliujsagErvenyessegVege = model.FaliujsagErvenyessegVege, FogadooraDatumList = model.FogadooraDatumList, ModositasiIdoszakTipus = model.ModositasiIdoszakTipus, JelentkezesHatarideje = model.JelentkezesekKezelese ? model.JelentkezesHatarideje : null }; } public static List TeremUtkozesList(DataSet ds, List<(DateTime kezdet, DateTime vege)> fogadooraIdopontok) { var result = new List(); foreach (var (kezdet, vege) in fogadooraIdopontok) { result.AddRange(ds.Tables[0].AsEnumerable() .Where(x => (DateTime)x["OraVege"] > kezdet && (DateTime)x["OraKezdete"] < vege).ToList()); } return result; } public static List PedagogusUtkozesList(DataSet ds, List<(DateTime kezdet, DateTime vege)> fogadooraIdopontok) { var result = new List(); foreach (var (kezdet, vege) in fogadooraIdopontok) { result.AddRange(ds.Tables[0].AsEnumerable() .Where(x => (DateTime)x["OraVege"] > kezdet && (DateTime)x["OraKezdete"] < vege).ToList()); } return result; } public static List FogadooraUtkozesList(DataSet ds, List<(DateTime kezdet, DateTime vege)> fogadooraIdopontok, int? fogadooraId) { var result = new List(); foreach (var (kezdet, vege) in fogadooraIdopontok) { result.AddRange(ds.Tables[0].AsEnumerable() .Where(x => x.Field("FogadooraVege") > kezdet && x.Field("FogadooraKezdete") < vege && (!fogadooraId.HasValue || x.Field("ID") != fogadooraId.Value)).ToList()); } return result; } public static List FogadooraTeremUtkozesList(DataSet ds, List<(DateTime kezdet, DateTime vege)> fogadooraIdopontok, int? fogadooraId) { var result = new List(); foreach (var (kezdet, vege) in fogadooraIdopontok) { result.AddRange(ds.Tables[0].AsEnumerable() .Where(x => x.Field("FogadooraVege") > kezdet && x.Field("FogadooraKezdete") < vege && (!fogadooraId.HasValue || x.Field("ID") != fogadooraId.Value)).ToList()); } return result; } public static int NapirendUtkozes => new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue(RendszerBeallitasTipusEnum.Napirend_felvitelel_utkozes_figyeles); public static int TeremUtkozesSystemSetting => new SystemSettingsHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSystemSettingValue(RendszerBeallitasTipusEnum.Teremutkozes_figyeles); } }