This commit is contained in:
2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions
@@ -0,0 +1,49 @@
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;
}
}
}
@@ -0,0 +1,49 @@
using System.Collections.Generic;
using System.Linq;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Ellenorzo.BL.VN.Ellenorzo;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Email;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar.Osztalyfonok;
using Kreta.Ellenorzo.Domain.VN.Telefon;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Resources;
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo.Alkalmazott.Tanar.Osztalyfonok
{
public class OsztalyfonokFacade : EllenorzoFacade
{
public OsztalyfonokFacade(MobileUser mobileUser) : base(mobileUser)
{
}
public HashSet<OsztalyfonokListResponse> ListOsztalyfonokForTanuloAndGondviselo(OsztalyfonokListRequest request)
{
var felhasznaloIds = new HashSet<OsztalyfonokUid>(request?.Uids).Select(x => x.Id).ToList();
if (!felhasznaloIds.Any())
{
throw new BlException(string.Format(ErrorResource.ParameterMegadasaKotelezo, "Uid"), BlExceptionType.ModelValidacio);
}
var response = RunSubquery(() => OsztalyfonokSubqueries.ListOsztalyfonok(DefaultConnectionParameters,
new OsztalyfonokListRequest
{
Tanar = new TanarListRequest
{
Alkalmazott = new AlkalmazottListRequest
{
Email = new EmailListRequest { FelhasznaloIds = felhasznaloIds, IsPublic = true },
Telefon = new TelefonListRequest { FelhasznaloIds = felhasznaloIds, IsPublic = true },
FelhasznaloIds = felhasznaloIds
}
}
}));
return response;
}
}
}
@@ -0,0 +1,39 @@
using System.Collections.Generic;
using System.Linq;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Ellenorzo.BL.VN.OsztalyCsoport;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar.Osztalyfonok;
using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo.Alkalmazott.Tanar.Osztalyfonok
{
internal static class OsztalyfonokSubqueries
{
internal static HashSet<OsztalyfonokListResponse> ListOsztalyfonok(DefaultConnectionParameters dcp, OsztalyfonokListRequest request)
{
var response = new HashSet<OsztalyfonokListResponse>(new OsztalyfonokListResponse());
var tanarok = TanarSubqueries.ListTanar(dcp, request.Tanar);
var osztalyokAholOsztalyfonok = OsztalyCsoportSubqueries.ListOsztalyCsoport(dcp, new OsztalyCsoportListRequest { OsztalyfonokIds = request.Tanar.Alkalmazott.FelhasznaloIds });
foreach (var tanar in tanarok)
{
var responseItem = new OsztalyfonokListResponse
{
Uid = new OsztalyfonokUid(tanar.Uid.Id),
Tanar = tanar,
Osztalyai = osztalyokAholOsztalyfonok.Where(x => x.Osztalyfonok?.Uid.Id == tanar.Uid.Id).ToList()
};
if (!response.Add(responseItem))
{
throw new BlException(BlExceptionType.DuplikaltKulcs);
}
}
return response;
}
}
}
@@ -0,0 +1,31 @@
using System.Collections.Generic;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo.Alkalmazott.Tanar
{
internal static class TanarSubqueries
{
internal static HashSet<TanarListResponse> ListTanar(DefaultConnectionParameters dcp, TanarListRequest request)
{
var response = new HashSet<TanarListResponse>(new TanarListResponse());
foreach (var item in AlkalmazottSubqueries.ListAlkalmazott(dcp, request.Alkalmazott))
{
if (!response.Add(new TanarListResponse
{
Uid = new TanarUid(item.Uid.Id),
Alkalmazott = item
}))
{
throw new BlException(BlExceptionType.DuplikaltKulcs);
}
}
return response;
}
}
}