Files
kreta/Kreta.WebApi/Ellenorzo/Kreta.Ellenorzo.BL/VN/LEP/LepSubqueries.cs
T
2024-03-13 00:33:46 +01:00

73 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.Client.LEP;
using Kreta.Core.Configuratiaton.Interface;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.Logic;
using Kreta.Ellenorzo.Dao.VN.Lep;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Lep;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Web.Logging.Abstractions;
namespace Kreta.Ellenorzo.BL.VN.Lep
{
internal static class LepSubqueries
{
internal static List<EloadasResponse> GetEloadasok(DefaultConnectionParameters dcp, ILepConfiguration lepConfiguration, ITraceLogger logger)
{
var eloadasok = new List<EloadasResponse>();
var kozpontiResults = new List<EloadasIdopontResponseModel>();
try
{
kozpontiResults = new LepClient(lepConfiguration.Url, lepConfiguration.ApiKey).GetEloadasok(dcp.IntezmenyAzonosito, Core.Constants.LepEnabledEvfolyam);
}
catch (Exception e)
{
logger.Error(e.Message);
return eloadasok;
}
if (kozpontiResults?.Count > 0)
{
var tanuloEloadasDaoList = dcp.DalHandler.LepEloadasJegyzekDal().GetTanuloEloadasai(dcp.TanuloId).ToDaoList<TanuloEloadasResponseDao>();
var eloadasokGroupedResult = (from kozpontiResult in kozpontiResults
join tanuloEloadas in tanuloEloadasDaoList on kozpontiResult.Id equals tanuloEloadas.EloadasId
select new { kozpontiResult.Id, kozpontiResult.IranyitoSzam, kozpontiResult.Telepules, kozpontiResult.KozteruletNev, kozpontiResult.KozteruletJellegNev, kozpontiResult.Hazszam, kozpontiResult.Kezdete, kozpontiResult.Vege, kozpontiResult.SzervezetNev, kozpontiResult.Nev, kozpontiResult.Leiras, tanuloEloadas.GondviseloElfogadas, tanuloEloadas.Megjelent }).Distinct();
foreach (var item in eloadasokGroupedResult)
{
eloadasok.Add(new EloadasResponse()
{
Uid = new EloadasUid($"{item.Id}"),
Helyszin = $"{item.IranyitoSzam} {item.Telepules} {item.KozteruletNev} {item.KozteruletJellegNev} {item.Hazszam}",
Datum = item.Kezdete.Date,
EloadasKezdete = item.Kezdete,
EloadasVege = item.Vege,
SzervezetNev = item.SzervezetNev,
EloadasNev = item.Nev,
GondviseloElfogadas = SDAConvert.ToNullableBooleanFromTF(item.GondviseloElfogadas),
Megjelent = item.Megjelent
});
}
}
return eloadasok;
}
internal static void GondviseloEngedelyezes(DefaultConnectionParameters dcp, GondviseloEngedelyezesRequest request)
{
var result = dcp.DalHandler.LepEloadasJegyzekDal().SaveGondviseloEngedelyezes(dcp.IntezmenyId, dcp.TanevId, request.EloadasId, dcp.TanuloId, dcp.GondviseloId.Value, request.Dontes.HasValue ? SDAConvert.ToSDABoolean(request.Dontes.Value) : string.Empty);
if (!result)
{
throw new BlException(BlExceptionType.NemLetezoEntitas);
}
}
}
}