using System; using System.Collections.Generic; using Kreta.Core.Enum; using Kreta.Core.Exceptions; using Kreta.Core.Logic; using Kreta.Ellenorzo.BL.VN.Logic; using Kreta.Ellenorzo.Dao.VN.Faliujsag; using Kreta.Ellenorzo.Domain.VN.Common; using Kreta.Ellenorzo.Domain.VN.Faliujsag; using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier; namespace Kreta.Ellenorzo.BL.VN.Faliujsag { internal static class FaliujsagSubqueries { internal static HashSet ListFaliujsag(DefaultConnectionParameters dcp, FaliujsagListRequest request) { new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid(); var response = new HashSet(new FaliujsagListResponse()); var tanuloFaliujsagBejegyzeseiOsszes = dcp.DalHandler.Feljegyzes().GetFaliujsagonMegjelenoBejegyzesek(dcp.TanuloId, DateTime.Now, null, 0).ToDaoList(); var tanuloFaliujsagBejegyzesei = FilterTanuloFaliujsagBejegyzeseiByErvenyessegKezdete(request.DatumTol, request.DatumIg, tanuloFaliujsagBejegyzeseiOsszes); foreach (var faliujsagElem in tanuloFaliujsagBejegyzesei) { var faliujsagEsemeny = new FaliujsagListResponse { Uid = new FaliujsagUid(faliujsagElem.Id), RogzitoNeve = faliujsagElem.RogzitoNeve, ErvenyessegKezdete = faliujsagElem.ErvenyessegKezdete, ErvenyessegVege = faliujsagElem.ErvenyessegVege, Cim = faliujsagElem.Cim, Tartalom = faliujsagElem.Tartalom }; if (!response.Add(faliujsagEsemeny)) { throw new BlException(BlExceptionType.DuplikaltKulcs); } } return response; } private static List FilterTanuloFaliujsagBejegyzeseiByErvenyessegKezdete(DateTime? datumTol, DateTime? datumIg, List tanuloFaliujsagBejegyzesei) { if (datumTol.HasValue && datumIg.HasValue) { tanuloFaliujsagBejegyzesei = tanuloFaliujsagBejegyzesei.FindAll(x => x.ErvenyessegKezdete >= datumTol && x.ErvenyessegKezdete <= datumIg); } else if (datumTol.HasValue) { tanuloFaliujsagBejegyzesei = tanuloFaliujsagBejegyzesei.FindAll(x => x.ErvenyessegKezdete >= datumTol); } else if (datumIg.HasValue) { tanuloFaliujsagBejegyzesei = tanuloFaliujsagBejegyzesei.FindAll(x => x.ErvenyessegKezdete <= datumIg); } return tanuloFaliujsagBejegyzesei; } } }