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 GetEloadasok(DefaultConnectionParameters dcp, ILepConfiguration lepConfiguration, ITraceLogger logger) { var eloadasok = new List(); var kozpontiResults = new List(); 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(); 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); } } } }