This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -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;
}
}
}

View file

@ -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;
}
}
}

View file

@ -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;
}
}
}

View file

@ -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;
}
}
}

View file

@ -0,0 +1,45 @@
using Kreta.Ellenorzo.BL.VN.Ellenorzo;
using Kreta.Ellenorzo.BL.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.BL.VN.Logic;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Tanulo;
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo
{
public class FelhasznaloFacade : EllenorzoFacade
{
public FelhasznaloFacade(MobileUser mobileUser) : base(mobileUser)
{
}
public TanuloGetResponse GetTanuloAdatlap()
=> RunSubquery(() => FelhasznaloSubqueries.GetTanuloAdatlap(DefaultConnectionParameters));
public GondviseloAdatokResponse GetGondviseloAdatlap()
=> RunSubquery(() => GondviseloSubqueries.GetGondviseloAdatlap(DefaultConnectionParameters));
public bool IsTorvenyesKepviselo()
=> RunSubquery(() => FelhasznaloSubqueries.IsGondviseloTorvenyesKepviselo(DefaultConnectionParameters));
public void SaveBankszamla(BankszamlaRequest request)
=> RunSubquery(() => FelhasznaloSubqueries.SaveBankszamla(DefaultConnectionParameters, request));
public void DeleteBankszamla()
=> RunSubquery(() => FelhasznaloSubqueries.DeleteBankszamla(DefaultConnectionParameters));
public void SaveElerhetoseg(ElerhetosegRequest request)
=> RunSubquery(() => FelhasznaloSubqueries.SaveElerhetoseg(DefaultConnectionParameters, request));
public void UpdateGondviseloAdatlap(GondviseloBaseAdatlapRequest request)
{
new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid();
RunSubquery(() => GondviseloSubqueries.UpdateGondviseloAdatlap(DefaultConnectionParameters, request));
}
public NapiErtesitesOsszefoglaloResponse GetNapiErtesitesOsszefoglalo()
=> RunSubquery(() => FelhasznaloSubqueries.GetNapiErtesitesOsszefoglalo(DefaultConnectionParameters));
}
}

View file

@ -0,0 +1,296 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.Caching;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.FeatureToggle;
using Kreta.Core.Logic;
using Kreta.DataAccess.Interfaces;
using Kreta.DataAccessManual.Util;
using Kreta.Ellenorzo.BL.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.BL.VN.Felhasznalo.Tanulo;
using Kreta.Ellenorzo.BL.VN.Intezmeny;
using Kreta.Ellenorzo.BL.VN.Intezmeny.Rendszermodul;
using Kreta.Ellenorzo.BL.VN.Intezmeny.TestreszabasBeallitasok;
using Kreta.Ellenorzo.Dao.VN.Email;
using Kreta.Ellenorzo.Dao.VN.Ertekeles;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Tanulo;
using Kreta.Ellenorzo.Domain.VN.Intezmeny;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Ellenorzo.Enums;
using Kreta.Enums;
using Kreta.Job.Tasks.Cache;
using Kreta.Resources;
using static Kreta.Ellenorzo.Domain.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo
{
internal static class FelhasznaloSubqueries
{
internal static TanuloGetResponse GetTanuloAdatlap(DefaultConnectionParameters dcp)
{
var tanuloAdat = TanuloSubqueries.GetTanuloAdat(dcp);
var response = new TanuloGetResponse
{
Uid = new TanuloUid(dcp.TanuloId),
IdpUniqueId = tanuloAdat.IdpUniqueId,
TanuloAdat = tanuloAdat,
TanevId = dcp.TanevId,
Intezmeny = new IntezmenyResponse
{
IntezmenyAdatok = IntezmenySubqueries.GetSajatIntezmenyAdatok(dcp),
Rendszermodulok = RendszermodulSubqueries.ListRendszermodul(dcp),
TestreszabasBeallitasok = TestreszabasBeallitasokSubqueries.GetTestreszabasBeallitasok(dcp)
},
GondviseloLista = ModelToModel(GondviseloSubqueries.ListGondviseloForTanulo(dcp))
};
if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Gondviselo))
{
response.TanuloAdat.Bankszamla.IsReadOnly = !response.GondviseloLista.SingleOrDefault(x => x.Uid.Id == dcp.GondviseloId.Value)?.IsTorvenyesKepviselo ?? true;
}
dcp.DalHandler.FelhasznaloBelepes().UpdateLastLoginByUserId(dcp.FelhasznaloId, DateTime.Now, dcp.GondviseloId.HasValue);
return response;
}
internal static void SaveBankszamla(DefaultConnectionParameters dcp, BankszamlaRequest request)
{
if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Tanulo) || IsGondviseloTorvenyesKepviselo(dcp))
{
var validacioError = BankszamlaLogic.KitoltottsegValidacio(request.BankszamlaSzam, request.BankszamlaTulajdonosTipusId, request.BankszamlaTulajdonosNeve);
if (!string.IsNullOrWhiteSpace(validacioError))
{
throw new BlException(validacioError, BlExceptionType.ModelValidacio);
}
if (!BankszamlaLogic.IsBankAccountNumberValid(request.BankszamlaSzam))
{
throw new BlException(string.Format(TanuloResource.NemMegfeleloBankszamlaszam, request.BankszamlaSzam), BlExceptionType.ModelValidacio);
}
validacioError = BankszamlaLogic.CDVValidacio(request.BankszamlaSzam);
if (!string.IsNullOrWhiteSpace(validacioError))
{
throw new BlException(validacioError, BlExceptionType.ModelValidacio);
}
var bankszamlaCo = new BankszamlaCo
{
BankszamlaSzam = request.BankszamlaSzam,
BankszamlaTulajdonos = request.BankszamlaTulajdonosTipusId,
BankszamlaTulajdonosNeve = request.BankszamlaTulajdonosNeve,
SzamlavezetoBank = request.SzamlavezetoBank
};
new TanuloHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler)).SaveTanuloBankszamlaAdatok(dcp.TanuloId, dcp.GondviseloId, bankszamlaCo);
}
else
{
throw new BlException(BlExceptionType.NincsJogosultsag);
}
}
internal static void DeleteBankszamla(DefaultConnectionParameters dcp)
{
if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Tanulo) || IsGondviseloTorvenyesKepviselo(dcp))
{
new TanuloHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler)).SaveTanuloBankszamlaAdatok(dcp.TanuloId, dcp.GondviseloId, new BankszamlaCo());
}
else
{
throw new BlException(BlExceptionType.NincsJogosultsag);
}
}
internal static void SaveElerhetoseg(DefaultConnectionParameters dcp, ElerhetosegRequest request)
{
SaveEmail(dcp, request.EmailCim);
SaveTelefonszam(dcp, request.Telefonszam);
var tanuloAdatlapCache = KretaServer.KretaServer.Instance.CacheManager.AquireCacheMobile<TanuloAdatlapCache>();
var cacheEnabledAndNotNull = FeatureContext.Instance.IsEnabled(Constants.FeatureName.MobileEllenorzoApiCache, dcp.IntezmenyAzonosito) && tanuloAdatlapCache != null;
if (cacheEnabledAndNotNull)
{
tanuloAdatlapCache.RemoveTanuloAdatlap(dcp.TanuloId, dcp.IntezmenyAzonosito);
}
}
internal static void SaveEmail(DefaultConnectionParameters dcp, string emailCim)
{
if (!string.IsNullOrWhiteSpace(emailCim))
{
var dal = dcp.DalHandler.Email();
var isUjEmail = false;
IEmail ujEmail;
var emailek = dal.GetFelhasznalokEmailCimei(new EmailRequestDao()
{
FelhasznaloIds = new List<int>()
{
dcp.TanuloId
},
IsPublic = null
});
if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Gondviselo))
{
emailek = emailek.Where(e => e.GondviseloId == dcp.GondviseloId).ToList();
}
else if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Tanulo))
{
emailek = emailek.Where(e => e.FelhasznaloId == dcp.TanuloId && e.GondviseloId == null).ToList();
}
var alapertelmezettEmail = emailek.FirstOrDefault(e => e.IsAlapertelmezett);
var duplikaltEmail = emailek.FirstOrDefault(e => e.Email == emailCim && e.Id != alapertelmezettEmail.Id);
if (duplikaltEmail != null)
{
var regiEmail = dal.Get(alapertelmezettEmail.Id);
regiEmail.Alapertelmezett = false;
dal.FullUpdate(regiEmail);
ujEmail = dal.Get(duplikaltEmail.Id);
ujEmail.Alapertelmezett = true;
ujEmail.IsMobilRogzitett = true;
dal.FullUpdate(ujEmail);
}
else
{
if (alapertelmezettEmail == null)
{
ujEmail = dal.Get();
isUjEmail = true;
}
else
{
ujEmail = dal.Get(alapertelmezettEmail.Id);
}
if (ujEmail.EmailCim != emailCim)
{
ujEmail.Alapertelmezett = true;
ujEmail.EmailCim = emailCim;
ujEmail.EmailTipusa = (int)EmailTipusEnum.Hivatalos;
ujEmail.GondviseloId = dcp.GondviseloId ?? ujEmail.GondviseloId;
ujEmail.FelhasznaloId = dcp.TanuloId;
ujEmail.IsMobilRogzitett = true;
if (isUjEmail)
{
ujEmail.IntezmenyId = dcp.IntezmenyId;
dal.Insert(ujEmail);
}
else
{
dal.FullUpdate(ujEmail);
}
}
}
}
}
internal static void SaveTelefonszam(DefaultConnectionParameters dcp, string telefonszam)
{
if (!string.IsNullOrWhiteSpace(telefonszam))
{
var dal = dcp.DalHandler.Telefon();
var isUjTelefon = false;
ITelefon ujTelefon;
var telefonszamok = dal.ListTelefon(new List<int>() { dcp.TanuloId }, null);
if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Gondviselo))
{
telefonszamok = telefonszamok.Where(e => e.GondviseloId == dcp.GondviseloId).ToList();
}
else if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Tanulo))
{
telefonszamok = telefonszamok.Where(e => e.FelhasznaloId == dcp.TanuloId && e.GondviseloId == null).ToList();
}
var alapertelmezettTelefon = telefonszamok.FirstOrDefault(e => e.IsAlapertelmezett);
var duplikaltTelefon = telefonszamok.FirstOrDefault(e => e.Telefonszam == telefonszam && e.Id != alapertelmezettTelefon.Id);
if (duplikaltTelefon != null)
{
var regiTelefon = dal.Get(alapertelmezettTelefon.Id);
regiTelefon.Alapertelmezett = false;
dal.FullUpdate(regiTelefon);
ujTelefon = dal.Get(duplikaltTelefon.Id);
ujTelefon.Alapertelmezett = true;
ujTelefon.IsMobilRogzitett = true;
dal.FullUpdate(ujTelefon);
}
else
{
if (alapertelmezettTelefon == null)
{
ujTelefon = dal.Get();
isUjTelefon = true;
}
else
{
ujTelefon = dal.Get(alapertelmezettTelefon.Id);
}
if (ujTelefon.TelefonSzam != telefonszam)
{
ujTelefon.Alapertelmezett = true;
ujTelefon.TelefonSzam = telefonszam;
ujTelefon.TelefonTipusa = (int)TelefonTipusEnum.Mobil;
ujTelefon.GondviseloId = dcp.GondviseloId ?? ujTelefon.GondviseloId;
ujTelefon.FelhasznaloId = dcp.TanuloId;
ujTelefon.IsMobilRogzitett = true;
if (isUjTelefon)
{
ujTelefon.IntezmenyId = dcp.IntezmenyId;
dal.Insert(ujTelefon);
}
else
{
dal.FullUpdate(ujTelefon);
}
}
}
}
}
internal static bool IsGondviseloTorvenyesKepviselo(DefaultConnectionParameters dcp)
=> dcp.DalHandler.Gondviselo().Get(dcp.GondviseloId.Value).IsTorvenyesKepviselo;
internal static NapiErtesitesOsszefoglaloResponse GetNapiErtesitesOsszefoglalo(DefaultConnectionParameters dcp)
{
var napiErtesitesOsszefoglalo = dcp.DalHandler.Felhasznalo().GetNapiErtesitesOsszefoglalo(dcp.TanuloId, null).ToDaoList<NapiErtesitesOsszefoglaloDao>();
return new NapiErtesitesOsszefoglaloResponse
{
Ertekelesek = napiErtesitesOsszefoglalo.First(e => e.ErtesitesTipusa == "Ertekelesek").ErtesitesekSzama,
Mulasztasok = napiErtesitesOsszefoglalo.First(e => e.ErtesitesTipusa == "Mulasztasok").ErtesitesekSzama,
Feljegyzesek = napiErtesitesOsszefoglalo.First(e => e.ErtesitesTipusa == "Feljegyzesek").ErtesitesekSzama,
Bejelentettszamonkeresek = napiErtesitesOsszefoglalo.First(e => e.ErtesitesTipusa == "BejelentettSzamonkeresek").ErtesitesekSzama,
Hazifeladatok = napiErtesitesOsszefoglalo.First(e => e.ErtesitesTipusa == "HaziFeladatok").ErtesitesekSzama,
Uzenetek = napiErtesitesOsszefoglalo.First(e => e.ErtesitesTipusa == "Uzenetek").ErtesitesekSzama,
Orarendvaltozasok = GetOrarendValtozasok(dcp)
};
}
private static int GetOrarendValtozasok(DefaultConnectionParameters dcp)
{
var orarendvaltozasokSzama = 0;
var orarendValtozasCache = KretaServer.KretaServer.Instance.CacheManager.AquireCacheMobile<OrarendValtozasCache>();
var cacheEnabledAndNotNull = FeatureContext.Instance.IsEnabled(Constants.FeatureName.MobileEllenorzoApiCache, dcp.IntezmenyAzonosito) && orarendValtozasCache != null;
if (cacheEnabledAndNotNull)
{
var orarendValtozasok = orarendValtozasCache.GetOrarendValtozasok(dcp.IntezmenyAzonosito);
if (orarendValtozasok.Any())
{
orarendvaltozasokSzama = orarendValtozasok.Where(e => e.IntezmenyAzonosito == dcp.IntezmenyAzonosito && e.UserId == dcp.TanuloId).Count();
}
}
return orarendvaltozasokSzama;
}
}
}

View file

@ -0,0 +1,126 @@
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.ConnectionType;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.Logic;
using Kreta.DataAccessManual.Util;
using Kreta.Ellenorzo.BL.VN.Intezmeny.Rendszermodul;
using Kreta.Ellenorzo.Dao.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Ellenorzo.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Resources;
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo.Gondviselo
{
internal static class GondviseloSubqueries
{
internal static HashSet<GondviseloResponse> ListGondviseloForTanulo(DefaultConnectionParameters dcp)
{
var response = new HashSet<GondviseloResponse>(new GondviseloResponse());
foreach (var gondviselo in dcp.DalHandler.Tanulo().GetGondviseloAlapertelmezettAdatok(dcp.TanuloId, dcp.TanevId).ToDaoList<GondviseloResponseDao>())
{
if (dcp.JogosultsagLista.Contains(FelhasznaloSzerepkor.Tanulo) || (dcp.UserIdpUniqueId == gondviselo.IdpUniqueId))
{
var responseItem = new GondviseloResponse
{
Uid = new GondviseloUid(gondviselo.Id),
IdpUniqueId = gondviselo.IdpUniqueId,
Nev = gondviselo.Nev,
EmailCim = !string.IsNullOrWhiteSpace(gondviselo.EmailCim) ? gondviselo.EmailCim : null,
Telefonszam = !string.IsNullOrWhiteSpace(gondviselo.Telefonszam) ? gondviselo.Telefonszam : null,
IsTorvenyesKepviselo = gondviselo.IsTorvenyesKepviselo
};
if (!response.Add(responseItem))
{
throw new BlException(BlExceptionType.DuplikaltKulcs);
}
}
}
return response;
}
internal static GondviseloAdatokResponse GetGondviseloAdatlap(DefaultConnectionParameters dcp)
{
var gondviselo = dcp.DalHandler.Gondviselo().Get(dcp.GondviseloId.Value) ?? throw new BlException(BlExceptionType.NemLetezoEntitas);
return gondviselo.Torolt
? throw new BlException(BlExceptionType.NemLetezoEntitas)
: new GondviseloAdatokResponse
{
Elotag = gondviselo.Elotag,
Vezeteknev = gondviselo.Vezeteknev,
Utonev = gondviselo.Utonev,
SzuletesiVezeteknev = gondviselo.SzuletesiVezeteknev,
SzuletesiUtonev = gondviselo.SzuletesiUtonev,
AnyjaVezeteknev = gondviselo.AnyjaVezeteknev,
AnyjaUtonev = gondviselo.AnyjaUtonev,
SzuletesiHely = gondviselo.SzuletesiHely,
SzuletesiDatum = gondviselo.SzuletesiDatum
};
}
internal static void SaveGondviseloEszkozIgenyles(DefaultConnectionParameters dcp, GondviseloEszkozIgenylesRequest request)
{
if (RendszermodulSubqueries.ListRendszermodul(dcp).First(r => r.Tipus == Enums.VN.RendszermodulTipus.FeltarGondviselo).IsAktiv && FelhasznaloSubqueries.IsGondviseloTorvenyesKepviselo(dcp))
{
var feltarGondviseloHelper = new FeltarGondviseloHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler));
if (feltarGondviseloHelper.IsEszkozIgenyelheto(dcp.TanuloId))
{
UpdateGondviseloAdatlapData(dcp, request);
feltarGondviseloHelper.EszkozIgenyles(dcp.TanuloId, dcp.GondviseloId.Value);
}
else
{
throw new BlException(AdminisztracioResource.ATanulonakMarVanBenyujtottRegisztracioja, HttpStatusCode.Forbidden);
}
}
else
{
throw new BlException(BlExceptionType.NincsJogosultsag);
}
}
internal static void UpdateGondviseloAdatlap(DefaultConnectionParameters dcp, GondviseloBaseAdatlapRequest request)
{
var intezmenyConfigHelper = new IntezmenyConfigHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId));
bool gondviseloSzemelyesAdatokSzerkeszteseEnabled = intezmenyConfigHelper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.FeltarGondviselo, IntezmenyConfigTipusEnum.IsEnabled);
if (gondviseloSzemelyesAdatokSzerkeszteseEnabled)
{
UpdateGondviseloAdatlapData(dcp, request);
}
else
{
throw new BlException(BlExceptionType.NincsJogosultsag);
}
}
private static void UpdateGondviseloAdatlapData(DefaultConnectionParameters dcp, GondviseloBaseAdatlapRequest request)
{
new GondviseloHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler))
.SaveGondviselo4TAdatok(dcp.GondviseloId.Value,
new Felhasznalo4TAdatokCo
{
Elotag = request.Elotag,
Vezeteknev = request.Vezeteknev,
Utonev = request.Utonev,
SzuletesiVezeteknev = request.SzuletesiVezeteknev,
SzuletesiUtonev = request.SzuletesiUtonev,
SzuletesiHely = request.SzuletesiHely,
SzuletesiDatum = request.SzuletesiDatum,
AnyjaVezeteknev = request.AnyjaVezeteknev,
AnyjaUtonev = request.AnyjaUtonev
});
}
}
}

View file

@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Kreta.BusinessLogic.Caching;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.FeatureToggle;
using Kreta.Core.Logic;
using Kreta.Ellenorzo.Dao.VN.OsztalyCsoport.Osztaly;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Tanulo;
using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport.Osztaly;
using static Kreta.Ellenorzo.BL.VN.Logic.TanuloLogic;
namespace Kreta.Ellenorzo.BL.VN.Felhasznalo.Tanulo
{
internal static class TanuloSubqueries
{
private static TanuloAdatlapCache TanuloAdatlapCache => KretaServer.KretaServer.Instance.CacheManager.AquireCacheMobile<TanuloAdatlapCache>();
internal static TanuloAdatResponse GetTanuloAdat(DefaultConnectionParameters dcp)
{
return FeatureContext.Instance.IsEnabled(featureName: Constants.FeatureName.MobileEllenorzoApiCache, dcp.IntezmenyAzonosito) && TanuloAdatlapCache != null
? TanuloAdatlapCache.GetOrAddTanuloAdatlap(dcp.TanuloId, dcp.IntezmenyAzonosito, () => TanuloAdat(dcp))
: TanuloAdat(dcp);
}
private static TanuloAdatResponse TanuloAdat(DefaultConnectionParameters dcp)
{
DataSet tanuloAdatokDataSet = dcp.DalHandler.Tanulo().GetTanuloAdatok(dcp.StudentIdpUniqueId);
return tanuloAdatokDataSet.Tables[0].Rows.Count != 0
? tanuloAdatokDataSet.Tables[0].Rows[0].Field<int>("TanuloId") == dcp.TanuloId
? tanuloAdatokDataSet.Tables[0].Rows.Cast<DataRow>().Select(tanuloAdatDataRow =>
new TanuloAdatResponse
{
Nev = tanuloAdatDataRow.Field<string>("NyomtatasiNev"),
SzuletesiNev = tanuloAdatDataRow.Field<string>("SzuletesiNev"),
SzuletesiDatum = tanuloAdatDataRow.Field<DateTime>("SzuletesiDatum"),
SzuletesiHely = tanuloAdatDataRow.Field<string>("SzuletesiHely"),
Telefonszam = tanuloAdatDataRow.Field<string>("AlapertelmezettTelefon"),
EmailCim = tanuloAdatDataRow.Field<string>("AlapertelmezettEmail"),
Cimek = tanuloAdatokDataSet.Tables[1].Rows.Cast<DataRow>().Select(tanuloCimDataRow =>
$"{tanuloCimDataRow.Field<string>("Varos")} ({tanuloCimDataRow.Field<string>("Iranyitoszam")}), {tanuloCimDataRow.Field<string>("Kozterulet")} {tanuloCimDataRow.Field<string>("KozteruletJellegeNev")} {tanuloCimDataRow.Field<string>("HazSzam")}{IsNullOrValue(tanuloCimDataRow.Field<string>("Epulet"))}{IsNullOrValue(tanuloCimDataRow.Field<string>("LepcsoHaz"))}{IsNullOrValue(tanuloCimDataRow.Field<string>("Emelet"))}{IsNullOrValue(tanuloCimDataRow.Field<string>("Ajto"))}"
).ToList(),
AnyjaNeve = tanuloAdatDataRow.Field<string>("AnyjaNeve"),
IdpUniqueId = tanuloAdatDataRow.Field<Guid>("IdpEgyediAzonosito"),
Bankszamla = new BankszamlaResponse
{
BankszamlaSzam = TanuloHelper.ConvertSzamlaszam(tanuloAdatDataRow.Field<string>("BankszamlaSzam")),
BankszamlaTulajdonosTipusId = tanuloAdatDataRow.Field<int?>("BankszamlaTulajdonosTipusId"),
BankszamlaTulajdonosNeve = tanuloAdatDataRow.Field<string>("BankszamlaTulajdonosNeve")
},
IsEszkozKiosztva = SDAConvert.ToBooleanFromTF(tanuloAdatDataRow["IsEszkozKiosztva"])
}).Single()
: throw new BlException(BlExceptionType.IntezmenyMarTanevetValtott)
: throw new BlException(BlExceptionType.NemLetezoEntitas);
}
internal static List<int> ListOsztalyokAktivTanuloIds(DefaultConnectionParameters dcp, OsztalyTanuloiListRequest request)
{
return dcp.DalHandler.TanuloCsoport().OsztalyTanuloi(dcp.TanevId, request.OsztalyIds).ToDaoList<OsztalyTanuloResponseDao>().Select(t => t.Id).ToList();
}
}
}