namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get { using System.Collections.Generic; using System.Data; using System.Linq; using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co; using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum; using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.JavasoltJelenletTemplate; using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo; using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic; using Kreta.BusinessLogic.Helpers; using Kreta.Core.ConnectionType; using Kreta.Core.Logic; using Kreta.Core.Validation.Exceptions; using Kreta.Core.Validation.Exceptions.Enum; using Kreta.Enums; using Kreta.Resources; public static class OraSubqueries { public static ResponseWrapperCo> FeljegyzesLista(int teacherId, FeljegyzesRequestCo request, int intezmenyId, string intezmenyAzonosito, int tanevId) { var returnObject = new ResponseWrapperCo>(request.Hash); var tanuloFeljegyzesList = new List(); var tanuloFeljegyzesDt = GetAndValidateTanoraHelper(request.TanoraId, teacherId, intezmenyId, intezmenyAzonosito, tanevId).GetTanuloFeljegyzesek(request.TanoraId).Tables[0]; foreach (DataRow tanuloFeljegyzes in tanuloFeljegyzesDt.Rows) { var tanuloId = tanuloFeljegyzes.Field("TanuloId"); var newFeljegyzesInfo = new FeljegyzesInfoResponseCo { Id = tanuloFeljegyzes.Field("Id"), Tipus = new NaploEnumCo(tanuloFeljegyzes.Field("Tipus")) }; var letezoTanuloFeljegyzes = tanuloFeljegyzesList.Find(x => x.TanuloId == tanuloId); if (letezoTanuloFeljegyzes == null) { tanuloFeljegyzesList.Add( new FeljegyzesResponseCo { TanuloId = tanuloId, FeljegyzesLista = new List() { newFeljegyzesInfo } }); } else { letezoTanuloFeljegyzes.FeljegyzesLista.Add(newFeljegyzesInfo); } } returnObject.FillData(tanuloFeljegyzesList); return returnObject; } public static List ListJavasoltJelenletTemplate(int teacherId, JavasoltJelenletTemplateGetRequestCo request) => new JavasoltJelenletTemplateLogic(request.OraAllapot).GetTemplate(); public static List MulasztasLista(int teacherId, MulasztasRequestCo request, int intezmenyId, string intezmenyAzonosito, int tanevId) { var tanuloMulasztasList = new List(); var tanuloMulasztasDt = GetAndValidateTanoraHelper(request.TanoraId, teacherId, intezmenyId, intezmenyAzonosito, tanevId).GetTanuloMulasztasok(request.TanoraId).Tables[0]; foreach (DataRow mulasztas in tanuloMulasztasDt.Rows) { tanuloMulasztasList.Add(new MulasztasResponseCo { Id = mulasztas.Field("Id"), Tipus = new NaploEnumCo(mulasztas.Field("Tipus")), Keses = mulasztas.Field("Keses"), TanuloId = mulasztas.Field("TanuloId") }); } return tanuloMulasztasList; } public static OsztalyTanuloiResponseCo GetOsztalyTanuloi(int teacherId, OsztalyTanuloiRequestCo request, string intezmenyAzonosito, int intezmenyId, int tanevId) { var osztalyCsoportHelper = new OsztalyCsoportHelper(new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId)); var osztalyTanuloDao = osztalyCsoportHelper.GetOsztalyCsoportTanulokEsFelmenteseik(request.OsztalyCsoportId, request.OraShortDatuma, null, null).ToDaoList(); var osztalyCsoport = osztalyCsoportHelper.GetOsztalyCsoportCoList().Find(x => x.Id == request.OsztalyCsoportId); if (osztalyCsoport == default) throw new ValidationException(ValidationErrorType.ResourceNotFound, ErrorResource.NemLetezoOsztalyCsoport); var osztalyTanuloi = new OsztalyTanuloiResponseCo { Id = request.OsztalyCsoportId, Nev = osztalyCsoport.Nev, }; foreach (var tanuloGroup in osztalyTanuloDao.GroupBy(x => x.TanuloId)) { var tanulo = tanuloGroup.FirstOrDefault(); var tanuloResponse = new TanuloResponseCo(tanulo); if (tanulo.TantargyId.HasValue) { tanuloResponse.Felmentesek = tanuloGroup.Select(felmentes => new TanuloMentessegResponseCo(felmentes.TantargyId, felmentes.IsErtekelesMentesseg, felmentes.IsSzovegesenErtekelheto, felmentes.IsOraMentesites)).ToList(); } osztalyTanuloi.TanuloLista.Add(tanuloResponse); } return osztalyTanuloi; } private static TanoraHelper GetAndValidateTanoraHelper(int tanoraId, int userId, int intezmenyId, string intezmenyAzonosito, int tanevId) { var tanoraHelper = new TanoraHelper(new MobileConnectionType(userId, intezmenyId, intezmenyAzonosito, tanevId)); if (!tanoraHelper.IsValidTanoraId(tanoraId)) { throw new ValidationException(ValidationErrorType.ResourceNotFound, ErrorResource.NemLezetoTanitasiOra); } return tanoraHelper; } } }