49 lines
2.3 KiB
C#
49 lines
2.3 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Kreta.Core.Enum;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Core.Logic;
|
|
using Kreta.Ellenorzo.BL.VN.Email;
|
|
using Kreta.Ellenorzo.BL.VN.Logic;
|
|
using Kreta.Ellenorzo.BL.VN.Telefon;
|
|
using Kreta.Ellenorzo.Dao.VN.Felhasznalo.Alkalmazott;
|
|
using Kreta.Ellenorzo.Domain.VN.Common;
|
|
using Kreta.Ellenorzo.Domain.VN.Email;
|
|
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott;
|
|
using Kreta.Ellenorzo.Domain.VN.Telefon;
|
|
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
|
|
|
|
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo.Alkalmazott
|
|
{
|
|
internal static class AlkalmazottSubqueries
|
|
{
|
|
internal static HashSet<AlkalmazottListResponse> ListAlkalmazott(DefaultConnectionParameters dcp, AlkalmazottListRequest request)
|
|
{
|
|
if (JogosultsagLogic.ListHozzaferhetoAlkalmazottIds(dcp).Intersect(request.FelhasznaloIds).ToList().Count != request.FelhasznaloIds.Count ||
|
|
!request.Email.IsPublic.Value || !request.Telefon.IsPublic.Value)
|
|
{
|
|
throw new BlException(BlExceptionType.NemLetezoEntitas);
|
|
}
|
|
var response = new HashSet<AlkalmazottListResponse>(new AlkalmazottListResponse());
|
|
|
|
var felhasznaloEmailek = EmailSubqueries.ListEmail(dcp.DalHandler, request.Email);
|
|
var felhasznaloTelefonok = TelefonSubqueries.ListTelefon(dcp.DalHandler, request.Telefon);
|
|
|
|
foreach (var item in dcp.DalHandler.Alkalmazott().GetAlkalmazottak(dcp.TanevId, request.FelhasznaloIds).ToDaoList<AlkalmazottResponseDao>())
|
|
{
|
|
if (!response.Add(new AlkalmazottListResponse
|
|
{
|
|
Uid = new AlkalmazottUid(item.Id),
|
|
Nev = item.Nev,
|
|
Emailek = felhasznaloEmailek.TryGetValue(new EmailListResponse { FelhasznaloUid = new FelhasznaloUid(item.Id) }, out EmailListResponse email) ? email.Emailek : new List<EmailResponse>(),
|
|
Telefonok = felhasznaloTelefonok.TryGetValue(new TelefonListResponse { FelhasznaloUid = new FelhasznaloUid(item.Id) }, out TelefonListResponse telefon) ? telefon.Telefonszamok : new List<TelefonResponse>()
|
|
}))
|
|
{
|
|
throw new BlException(BlExceptionType.DuplikaltKulcs);
|
|
}
|
|
}
|
|
|
|
return response;
|
|
}
|
|
}
|
|
}
|