45 lines
2.3 KiB
C#
45 lines
2.3 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Core.Logic;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Naplo.Dao.V3.Csatolmany;
|
|
using Kreta.Naplo.Domain.V3.Common;
|
|
using Kreta.Naplo.Domain.V3.Csatolmany;
|
|
using Kreta.Naplo.Domain.V3.Orarend;
|
|
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
|
|
|
namespace Kreta.Naplo.BusinessLogic.V3.Csatolmany
|
|
{
|
|
internal static class CsatolmanySubqueries
|
|
{
|
|
internal static Dictionary<OrarendElemUid, List<CsatolmanyResponse>> ListCsatolmanyok(DefaultConnectionParameters dcp, CsatolmanyListRequest request)
|
|
{
|
|
var result = new Dictionary<OrarendElemUid, List<CsatolmanyResponse>>(new OrarendElemUid());
|
|
if (!request.OrarendElemek.Any())
|
|
{
|
|
return result;
|
|
}
|
|
var oraFiles = new OraFileHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler))
|
|
.GetOraFilesByDateRange(request.DatumTol, request.DatumIg, (int)OraFileTipusEnum.openboard).ToDaoList<OraFileResponseDao>();
|
|
foreach (var orarendElem in request.OrarendElemek.Distinct(new OrarendElemSimplified()))
|
|
{
|
|
result.Add(new OrarendElemUid(orarendElem.Id, orarendElem.Tipus, orarendElem.Datum),
|
|
oraFiles.Where(x => orarendElem.Datum == x.OraDatum &&
|
|
((orarendElem.Tipus == CalendarOraTypeEnum.OrarendiOra && orarendElem.Id == x.OrarendiOraId) ||
|
|
(orarendElem.Tipus == CalendarOraTypeEnum.TanitasiOra && orarendElem.Id == x.TanitasiOraId) ||
|
|
(orarendElem.Tipus == CalendarOraTypeEnum.TanitasiOra && orarendElem.OrarendiOraId == x.OrarendiOraId) ||
|
|
(orarendElem.Tipus == CalendarOraTypeEnum.TanitasiOra && orarendElem.OrarendiOraGroupId == x.OrarendiOraId)))
|
|
.Select(x => new CsatolmanyResponse
|
|
{
|
|
Id = x.FileId,
|
|
Nev = x.FileNev
|
|
}).ToList());
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
}
|