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,17 @@
using System.Collections.Generic;
using Kreta.Ellenorzo.BL.VN.Ellenorzo;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.Hetirend;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny.Hetirend
{
public class HetirendFacade : EllenorzoFacade
{
public HetirendFacade(MobileUser mobileUser) : base(mobileUser)
{
}
public HashSet<HetirendListResponse> ListHetirend(HetirendListRequest request)
=> RunSubquery(() => HetirendSubqueries.ListHetirend(DefaultConnectionParameters, request));
}
}

View file

@ -0,0 +1,49 @@
using System.Collections.Generic;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.Logic;
using Kreta.DataAccessManual;
using Kreta.Ellenorzo.BL.VN.Logic;
using Kreta.Ellenorzo.Dao.VN.Intezmeny.Hetirend;
using Kreta.Ellenorzo.Domain.VN.Adatszotar;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.Hetirend;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Enums;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny.Hetirend
{
internal static class HetirendSubqueries
{
internal static HashSet<HetirendListResponse> ListHetirend(DefaultConnectionParameters dcp, HetirendListRequest request)
{
new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid();
var response = new HashSet<HetirendListResponse>(new HetirendListResponse());
var naptariHetAndOrarendOverlapFilter = new NaptariHetAndOrarendOverlapFilter
{
OrarendElemKezdoNapDatuma = request.OrarendElemKezdoNapDatuma,
OrarendElemVegNapDatuma = request.OrarendElemVegNapDatuma
};
var hetirendElemek = dcp.DalHandler.NaptariHet().GetNaptariHetList(dcp.TanevId, naptariHetAndOrarendOverlapFilter).Tables[0];
foreach (var hetirendElem in hetirendElemek.ToDaoList<OrarendiResponseDao>())
{
if (!response.Add(new HetirendListResponse
{
Uid = new HetirendUid(hetirendElem.Id),
HetSorszama = hetirendElem.HetSorszama,
KezdoNapDatuma = hetirendElem.KezdoNapDatuma,
VegNapDatuma = hetirendElem.VegNapDatuma,
Tipus = new Adatszotar<HetiRendTipusEnum>(hetirendElem.HetirendId ?? (int)HetiRendTipusEnum.MindegyikHet, hetirendElem.HetirendNev)
}))
{
throw new BlException(BlExceptionType.DuplikaltKulcs);
}
}
return response;
}
}
}

View file

@ -0,0 +1,23 @@
using Kreta.Ellenorzo.BL.VN.Ellenorzo;
using Kreta.Ellenorzo.BL.VN.Intezmeny.Rendszermodul;
using Kreta.Ellenorzo.BL.VN.Intezmeny.TestreszabasBeallitasok;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny
{
public class IntezmenyFacade : EllenorzoFacade
{
public IntezmenyFacade(MobileUser mobileUser) : base(mobileUser)
{
}
public IntezmenyResponse GetIntezmeny() => RunSubquery(() =>
new IntezmenyResponse
{
IntezmenyAdatok = IntezmenySubqueries.GetSajatIntezmenyAdatok(DefaultConnectionParameters),
Rendszermodulok = RendszermodulSubqueries.ListRendszermodul(DefaultConnectionParameters),
TestreszabasBeallitasok = TestreszabasBeallitasokSubqueries.GetTestreszabasBeallitasok(DefaultConnectionParameters)
});
}
}

View file

@ -0,0 +1,64 @@
using System;
using System.Runtime.Caching;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.ConnectionType;
using Kreta.Core.Logic;
using Kreta.DataAccessManual;
using Kreta.DataAccessManual.Util;
using Kreta.Ellenorzo.Dao.VN.Ellenorzo;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny
{
internal static class IntezmenySubqueries
{
internal static IntezmenyAdatok GetSajatIntezmenyAdatok(DefaultConnectionParameters dcp)
{
var intezmenyAdatok = new IntezmenyHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler)).GetIntezmenyiAdatok();
var response = new IntezmenyAdatok
{
Uid = new IntezmenyUid(intezmenyAdatok.IntezmenyId),
Azonosito = intezmenyAdatok.IntezmenyAzonosito,
TeljesNev = intezmenyAdatok.Nev,
RovidNev = intezmenyAdatok.RovidNev
};
return response;
}
internal static IntezmenyAdatokDao GetIntezmenyAdatokFromCache(string intezmenyAzonosito)
{
var cache = MemoryCache.Default;
var cacheKey = $"{intezmenyAzonosito}_mobileIntezmenyAdatok";
if (!(cache[cacheKey] is IntezmenyAdatokDao intezmenyAdatok))
{
intezmenyAdatok = new IntezmenyAdatokDao();
Dal.MobileConnection.Run(
intezmenyAzonosito,
null,
h =>
{
intezmenyAdatok = h.IntezmenyDal().GetIntezmenyIdAktivTanevIdByAzonosito(intezmenyAzonosito).Tables[0].Rows[0].ToDao<IntezmenyAdatokDao>();
});
var policy = new CacheItemPolicy
{
AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddMinutes(20))
};
cache.Set(cacheKey, intezmenyAdatok, policy);
}
return intezmenyAdatok;
}
internal static void RemoveIntezemenyAdatokCache(string intezmenyAzonosito)
{
_ = MemoryCache.Default.Remove($"{intezmenyAzonosito}_mobileIntezmenyAdatok");
}
}
}

View file

@ -0,0 +1,63 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual.Util;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.Rendszermodul;
using Kreta.Ellenorzo.Enums.VN;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.KretaServer.SystemSettings;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny.Rendszermodul
{
internal static class RendszermodulSubqueries
{
internal static HashSet<RendszermodulListResponse> ListRendszermodul(DefaultConnectionParameters dcp)
{
var helper = new IntezmenyConfigHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler));
var isEugyintezesEnabled = helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.Eugyintezes, IntezmenyConfigTipusEnum.IsEnabled);
var isLepEnabled = SystemSettingsManager.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Lazar_Ervin_Program_kezelese, dcp.IntezmenyAzonosito, dcp.TanevId);
var feltarAszfUrl = helper.GetIntezmenyConfig<string>(IntezmenyConfigModulEnum.FeltarASZFGondviselo, IntezmenyConfigTipusEnum.Url);
var isFeltarGondviseloEnabled = IsFeltarGondviseloEnabled(dcp, helper);
var response = new HashSet<RendszermodulListResponse>(new RendszermodulListResponse())
{
new RendszermodulListResponse
{
Tipus = RendszermodulTipus.Eugyintezes,
IsAktiv = isEugyintezesEnabled
},
new RendszermodulListResponse
{
Tipus = RendszermodulTipus.LEP,
IsAktiv = isLepEnabled
},
new RendszermodulListResponse
{
Tipus = RendszermodulTipus.FeltarGondviselo,
IsAktiv = isFeltarGondviseloEnabled
},
new RendszermodulListResponse
{
Tipus = RendszermodulTipus.FeltarAszf,
IsAktiv = isFeltarGondviseloEnabled,
Url = feltarAszfUrl //A FeltarGondviselobe kell athelyezni
}
};
return response;
}
private static bool IsFeltarGondviseloEnabled(DefaultConnectionParameters dcp, IntezmenyConfigHelper helper)
{
if (!helper.GetIntezmenyConfig<bool>(IntezmenyConfigModulEnum.FeltarGondviselo, IntezmenyConfigTipusEnum.IsEnabled))
{
return false;
}
return dcp.GondviseloId.HasValue
? new GondviseloHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler)).IsGondviseloTanuloinakEvfolyamTipusaLetezik(dcp.GondviseloId.Value, Core.Constants.FeltarEvfolyamList)
: new TanuloHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler)).IsTanuloFeltarEvfolyamos();
}
}
}

View file

@ -0,0 +1,17 @@
using System.Collections.Generic;
using Kreta.Ellenorzo.BL.VN.Ellenorzo;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.TanevRendje;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny.TanevRendje
{
public class TanevRendjeFacade : EllenorzoFacade
{
public TanevRendjeFacade(MobileUser mobileUser) : base(mobileUser)
{
}
public HashSet<TanevRendjeListResponse> ListTanevRendje()
=> RunSubquery(() => TanevRendjeSubqueries.ListTanevRendje(DefaultConnectionParameters));
}
}

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.Logic;
using Kreta.Ellenorzo.Dao.VN.Intezmeny.TanevRendje;
using Kreta.Ellenorzo.Domain.VN.Adatszotar;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.TanevRendje;
using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Enums;
using Kreta.KretaServer.SystemSettings;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny.TanevRendje
{
internal static class TanevRendjeSubqueries
{
internal static HashSet<TanevRendjeListResponse> ListTanevRendje(DefaultConnectionParameters dcp)
{
var response = new HashSet<TanevRendjeListResponse>(new TanevRendjeListResponse());
var tanevRendElemek = dcp.DalHandler.TanevRendjeDal().ListTanevRendekOsztalyCsoportokkal(dcp.TanevId, null, null, dcp.TanuloId, null).ToDaoList<TanevRendjeResponseDao>();
var kezdoIdopont = SystemSettingsManager.GetSystemSettingValue<TimeSpan>(RendszerBeallitasTipusEnum.Az_elektronikus_naplo_megjelenesenek_kezdoidopontja, dcp.IntezmenyAzonosito, dcp.TanevId);
foreach (var tanevRendElem in tanevRendElemek)
{
var napTipusNeve = (tanevRendElem.IsMindenOsztalyraVonatkozik ? string.Empty : "* ")
+ tanevRendElem.NapTipusNeve
+ (tanevRendElem.IsOrarendiNap ? string.Empty : " (Nem órarendi nap)")
+ (!string.IsNullOrWhiteSpace(tanevRendElem.HetNapjaNev) ? " (" + tanevRendElem.HetNapjaNev + ")" : string.Empty);
var responseItem = new TanevRendjeListResponse
{
Datum = tanevRendElem.Datum.Add(kezdoIdopont).AddMinutes(-1),
Naptipus = new Adatszotar<NapTipusEnum>(tanevRendElem.NapTipusId, napTipusNeve),
ElteroOrarendSzerintiTanitasiNap = tanevRendElem.HetNapjaId.HasValue ? new Adatszotar<HetNapjaTipusEnum>(tanevRendElem.HetNapjaId.Value, tanevRendElem.HetNapjaNev) : null,
OrarendiNapHetirendje = new Adatszotar<HetiRendTipusEnum>(tanevRendElem.HetirendId, tanevRendElem.HetirendNeve),
OsztalyCsoport = tanevRendElem.OsztalyCsoportId.HasValue ? new OsztalyCsoportSimplifiedResponse { Uid = new OsztalyCsoportUid(tanevRendElem.OsztalyCsoportId.Value) } : null
};
responseItem.Uid = new TanevRendjeUid(tanevRendElem.Id, responseItem.OsztalyCsoport?.Uid.Id);
if (!response.Add(responseItem))
{
throw new BlException(BlExceptionType.DuplikaltKulcs);
}
}
return response;
}
}
}

View file

@ -0,0 +1,27 @@
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual.Util;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.TestreszabasBeallitasok;
using Kreta.Enums;
namespace Kreta.Ellenorzo.BL.VN.Intezmeny.TestreszabasBeallitasok
{
internal static class TestreszabasBeallitasokSubqueries
{
internal static TestreszabasBeallitasokResponse GetTestreszabasBeallitasok(DefaultConnectionParameters dcp)
{
var helper = new SystemSettingsHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId));
return new TestreszabasBeallitasokResponse
{
IsDiakRogzithetHaziFeladatot = helper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Diak_altali_hazifeladatok_rogzitese),
IsTanorakTemajaMegtekinthetoEllenorzoben = helper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Tanora_Tema_Az_Ellenorzoben),
IsOsztalyAtlagMegjeleniteseEllenorzoben = helper.GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.Osztalyatlag_megjelenitese_az_ellenorzo_feluleten),
ErtekelesekMegjelenitesenekKesleltetesenekMerteke = helper.GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Ertekelesek_megjelenese_az_ellenorzo_modulban),
KovetkezoTelepitesDatuma = new AdminHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler)).GetKovTelepitesDatum()
};
}
}
}