kreta/Kreta.WebApi/Ellenorzo/Kreta.Ellenorzo.BL/VN/Intezmeny/Hetirend/HetirendSubqueries.cs
2024-03-13 00:33:46 +01:00

49 lines
2 KiB
C#

using System.Collections.Generic;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.Logic;
using Kreta.DataAccessManual;
using Kreta.Ellenorzo.BL.VN.Logic;
using Kreta.Ellenorzo.Dao.VN.Intezmeny.Hetirend;
using Kreta.Ellenorzo.Domain.VN.Adatszotar;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.Hetirend;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Enums;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny.Hetirend
{
internal static class HetirendSubqueries
{
internal static HashSet<HetirendListResponse> ListHetirend(DefaultConnectionParameters dcp, HetirendListRequest request)
{
new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid();
var response = new HashSet<HetirendListResponse>(new HetirendListResponse());
var naptariHetAndOrarendOverlapFilter = new NaptariHetAndOrarendOverlapFilter
{
OrarendElemKezdoNapDatuma = request.OrarendElemKezdoNapDatuma,
OrarendElemVegNapDatuma = request.OrarendElemVegNapDatuma
};
var hetirendElemek = dcp.DalHandler.NaptariHet().GetNaptariHetList(dcp.TanevId, naptariHetAndOrarendOverlapFilter).Tables[0];
foreach (var hetirendElem in hetirendElemek.ToDaoList<OrarendiResponseDao>())
{
if (!response.Add(new HetirendListResponse
{
Uid = new HetirendUid(hetirendElem.Id),
HetSorszama = hetirendElem.HetSorszama,
KezdoNapDatuma = hetirendElem.KezdoNapDatuma,
VegNapDatuma = hetirendElem.VegNapDatuma,
Tipus = new Adatszotar<HetiRendTipusEnum>(hetirendElem.HetirendId ?? (int)HetiRendTipusEnum.MindegyikHet, hetirendElem.HetirendNev)
}))
{
throw new BlException(BlExceptionType.DuplikaltKulcs);
}
}
return response;
}
}
}