using System; using System.Collections.Generic; using Kreta.Core.Enum; using Kreta.Core.Exceptions; using Kreta.Core.Logic; using Kreta.Ellenorzo.Dao.VN.Intezmeny.TanevRendje; using Kreta.Ellenorzo.Domain.VN.Adatszotar; using Kreta.Ellenorzo.Domain.VN.Common; using Kreta.Ellenorzo.Domain.VN.Intezmeny.TanevRendje; using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport; using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier; using Kreta.Enums; using Kreta.KretaServer.SystemSettings; namespace Kreta.Ellenorzo.BL.VN.Intezmeny.TanevRendje { internal static class TanevRendjeSubqueries { internal static HashSet ListTanevRendje(DefaultConnectionParameters dcp) { var response = new HashSet(new TanevRendjeListResponse()); var tanevRendElemek = dcp.DalHandler.TanevRendjeDal().ListTanevRendekOsztalyCsoportokkal(dcp.TanevId, null, null, dcp.TanuloId, null).ToDaoList(); var kezdoIdopont = SystemSettingsManager.GetSystemSettingValue(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja, dcp.IntezmenyAzonosito, dcp.TanevId); foreach (var tanevRendElem in tanevRendElemek) { var napTipusNeve = (tanevRendElem.IsMindenOsztalyraVonatkozik ? string.Empty : "* ") + tanevRendElem.NapTipusNeve + (tanevRendElem.IsOrarendiNap ? string.Empty : " (Nem órarendi nap)") + (!string.IsNullOrWhiteSpace(tanevRendElem.HetNapjaNev) ? " (" + tanevRendElem.HetNapjaNev + ")" : string.Empty); var responseItem = new TanevRendjeListResponse { Datum = tanevRendElem.Datum.Add(kezdoIdopont).AddMinutes(-1), Naptipus = new Adatszotar(tanevRendElem.NapTipusId, napTipusNeve), ElteroOrarendSzerintiTanitasiNap = tanevRendElem.HetNapjaId.HasValue ? new Adatszotar(tanevRendElem.HetNapjaId.Value, tanevRendElem.HetNapjaNev) : null, OrarendiNapHetirendje = new Adatszotar(tanevRendElem.HetirendId, tanevRendElem.HetirendNeve), OsztalyCsoport = tanevRendElem.OsztalyCsoportId.HasValue ? new OsztalyCsoportSimplifiedResponse { Uid = new OsztalyCsoportUid(tanevRendElem.OsztalyCsoportId.Value) } : null }; responseItem.Uid = new TanevRendjeUid(tanevRendElem.Id, responseItem.OsztalyCsoport?.Uid.Id); if (!response.Add(responseItem)) { throw new BlException(BlExceptionType.DuplikaltKulcs); } } return response; } } }