init
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user