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,128 @@
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<List<FeljegyzesResponseCo>> FeljegyzesLista(int teacherId, FeljegyzesRequestCo request, int intezmenyId, string intezmenyAzonosito, int tanevId)
{
var returnObject = new ResponseWrapperCo<List<FeljegyzesResponseCo>>(request.Hash);
var tanuloFeljegyzesList = new List<FeljegyzesResponseCo>();
var tanuloFeljegyzesDt = GetAndValidateTanoraHelper(request.TanoraId, teacherId, intezmenyId, intezmenyAzonosito, tanevId).GetTanuloFeljegyzesek(request.TanoraId).Tables[0];
foreach (DataRow tanuloFeljegyzes in tanuloFeljegyzesDt.Rows)
{
var tanuloId = tanuloFeljegyzes.Field<int>("TanuloId");
var newFeljegyzesInfo = new FeljegyzesInfoResponseCo
{
Id = tanuloFeljegyzes.Field<int>("Id"),
Tipus = new NaploEnumCo<EsemenyTipusEnum>(tanuloFeljegyzes.Field<int>("Tipus"))
};
var letezoTanuloFeljegyzes = tanuloFeljegyzesList.Find(x => x.TanuloId == tanuloId);
if (letezoTanuloFeljegyzes == null)
{
tanuloFeljegyzesList.Add(
new FeljegyzesResponseCo
{
TanuloId = tanuloId,
FeljegyzesLista = new List<FeljegyzesInfoResponseCo>()
{
newFeljegyzesInfo
}
});
}
else
{
letezoTanuloFeljegyzes.FeljegyzesLista.Add(newFeljegyzesInfo);
}
}
returnObject.FillData(tanuloFeljegyzesList);
return returnObject;
}
public static List<JavasoltJelenletTemplateGetResponseCo> ListJavasoltJelenletTemplate(int teacherId, JavasoltJelenletTemplateGetRequestCo request)
=> new JavasoltJelenletTemplateLogic(request.OraAllapot).GetTemplate();
public static List<MulasztasResponseCo> MulasztasLista(int teacherId, MulasztasRequestCo request, int intezmenyId, string intezmenyAzonosito, int tanevId)
{
var tanuloMulasztasList = new List<MulasztasResponseCo>();
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<int>("Id"),
Tipus = new NaploEnumCo<MulasztasTipusEnum>(mulasztas.Field<int>("Tipus")),
Keses = mulasztas.Field<int?>("Keses"),
TanuloId = mulasztas.Field<int>("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<TanuloResponseDao>();
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;
}
}
}