using System.Collections.Generic; using System.Linq; using Kreta.Core.Enum; using Kreta.Core.Exceptions; using Kreta.Core.Logic; using Kreta.DataAccessManual.ParameterClasses; using Kreta.Ellenorzo.BL.VN.Adatszotar; using Kreta.Ellenorzo.BL.VN.Logic; using Kreta.Ellenorzo.Dao.VN.BejelentettSzamonkeres; using Kreta.Ellenorzo.Domain.VN.Adatszotar; using Kreta.Ellenorzo.Domain.VN.BejelentettSzamonkeres; using Kreta.Ellenorzo.Domain.VN.Common; using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar; using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport; using Kreta.Ellenorzo.Domain.VN.Tantargy; using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier; using Kreta.Enums; namespace Kreta.Ellenorzo.BL.VN.BejelentettSzamonkeres { internal static class BejelentettSzamonkeresSubqueries { internal static BejelentettSzamonkeresListResponse GetBejelentettSzamonkeres(DefaultConnectionParameters dcp, BejelentettSzamonkeresListRequest request) { return ListBejelentettSzamonkeres(dcp, request).SingleOrDefault() ?? throw new BlException(BlExceptionType.NemLetezoEntitas); } internal static HashSet ListBejelentettSzamonkeres(DefaultConnectionParameters dcp, BejelentettSzamonkeresListRequest request) { new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid(); var response = new HashSet(new BejelentettSzamonkeresListResponse()); var tanuloBejelentettSzamonkeresei = dcp.DalHandler.SzamonkeresElorejelzes().GetBejelentettSzamonkeresekGrid( dcp.IntezmenyId, dcp.TanevId, new SzamonkeresElorejelzesSearchPco { SzamonkeresIds = request.Uids?.Select(x => x.Id).ToList(), TanuloId = dcp.TanuloId, DatumTol = request.DatumTol, DatumIg = request.DatumIg }, null).ToDaoList(); var targyKategoriaTipusById = AdatszotarSubqueries.GetTipusByIdDictionary((int)GeneratedAdatszotarTipusEnum.TargyKategoriaTipus, dcp.TanevId); foreach (var szamonkeres in tanuloBejelentettSzamonkeresei) { var bejelentettSzamonkeres = new BejelentettSzamonkeresListResponse { Datum = szamonkeres.Datum, HetNapja = new Adatszotar(szamonkeres.HetNapjaId, szamonkeres.HetNapjaNev), OrarendiOraOraszama = szamonkeres.OrarendiOraOraszama ?? -1, Tantargy = new TantargyResponse( szamonkeres.TantargyId, szamonkeres.TantargyNev, new Adatszotar(szamonkeres.TantargyKategoriaId, targyKategoriaTipusById[szamonkeres.TantargyKategoriaId].Name)), RogzitoTanar = new TanarSimplifiedResponse { Nev = szamonkeres.RogzitoTanarNev }, SzamonkeresTemaja = string.IsNullOrWhiteSpace(szamonkeres.SzamonkeresTemaja) ? null : szamonkeres.SzamonkeresTemaja, SzamonkeresModja = new Adatszotar(szamonkeres.SzamonkeresModjaId, szamonkeres.SzamonkeresModjaNev), BejelentesDatuma = szamonkeres.BejelentesDatuma, OsztalyCsoport = new OsztalyCsoportSimplifiedResponse { Uid = new OsztalyCsoportUid(szamonkeres.OsztalyCsoportId) }, Uid = new BejelentettSzamonkeresUid(szamonkeres.Id) }; _ = response.Add(bejelentettSzamonkeres); } return response; } } }