128 lines
5.9 KiB
C#
128 lines
5.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|