70 lines
4.3 KiB
C#
70 lines
4.3 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|