init
This commit is contained in:
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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue