kreta/Kreta.WebApi/Ellenorzo/Kreta.Ellenorzo.BL/VN/Felhasznalo/Gondviselo/GondviseloSubqueries.cs
2024-03-13 00:33:46 +01:00

126 lines
5.9 KiB
C#

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