95 lines
4.6 KiB
C#
95 lines
4.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Kreta.Core.Enum;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Core.Logic;
|
|
using Kreta.DataAccessManual.ParameterClasses;
|
|
using Kreta.Ellenorzo.BL.VN.Logic;
|
|
using Kreta.Ellenorzo.Dao.VN.Mulasztas;
|
|
using Kreta.Ellenorzo.Domain.VN.Adatszotar;
|
|
using Kreta.Ellenorzo.Domain.VN.Common;
|
|
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar;
|
|
using Kreta.Ellenorzo.Domain.VN.Mulasztas;
|
|
using Kreta.Ellenorzo.Domain.VN.Ora.TanitasiOra;
|
|
using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport;
|
|
using Kreta.Ellenorzo.Domain.VN.Tantargy;
|
|
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
|
|
using Kreta.Ellenorzo.Enums.VN;
|
|
using Kreta.Enums;
|
|
|
|
namespace Kreta.Ellenorzo.BL.VN.Mulasztas
|
|
{
|
|
internal static class MulasztasSubqueries
|
|
{
|
|
internal static HashSet<MulasztasListResponse> ListMulasztas(DefaultConnectionParameters dcp, MulasztasListRequest request)
|
|
{
|
|
new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid();
|
|
|
|
var response = new HashSet<MulasztasListResponse>(new MulasztasListResponse());
|
|
int[] validMulasztasTipusIdLista =
|
|
{
|
|
(int)MulasztasTipusEnum.keses,
|
|
(int)MulasztasTipusEnum.hianyzas
|
|
};
|
|
|
|
MulasztasKeresesePCO mulasztasKeresesePco = new MulasztasKeresesePCO
|
|
{
|
|
Tol = request.DatumTol,
|
|
Ig = request.DatumIg,
|
|
TanuloId = dcp.TanuloId,
|
|
TanevId = dcp.TanevId,
|
|
Id = request.Uid?.Id
|
|
};
|
|
|
|
var tanuloMulasztasai = dcp.DalHandler.MulasztasDal().GetHallgatoMulasztasaiDataSet(mulasztasKeresesePco).ToDaoList<MulasztasResponseDao>();
|
|
|
|
var tanuloValidMulasztasList =
|
|
tanuloMulasztasai.AsEnumerable().Where(mulasztas => Array.IndexOf(validMulasztasTipusIdLista, mulasztas.TipusId) > -1).ToList();
|
|
|
|
foreach (var tanuloMulasztas in tanuloValidMulasztasList)
|
|
{
|
|
var mulasztas = new MulasztasListResponse
|
|
{
|
|
Uid = new MulasztasUid(tanuloMulasztas.Id),
|
|
Tipus = new Adatszotar<MulasztasTipusEnum>(tanuloMulasztas.TipusId, tanuloMulasztas.TipusNev),
|
|
KesesPercben = tanuloMulasztas.KesesPercben.HasValue ? tanuloMulasztas.KesesPercben : null,
|
|
KeszitesDatuma = tanuloMulasztas.KeszitesDatuma,
|
|
IgazolasTipusa = tanuloMulasztas.IgazolasTipusId.HasValue ? new Adatszotar<IgazolasTipusEnum>(tanuloMulasztas.IgazolasTipusId.Value, tanuloMulasztas.IgazolasTipusNev) : null,
|
|
Tantargy = new TantargyResponse(
|
|
tanuloMulasztas.TantargyId,
|
|
tanuloMulasztas.TantargyNev,
|
|
new Adatszotar<TargyKategoriaTipusEnum>(tanuloMulasztas.TantargyKategoriaId, tanuloMulasztas.TantargyKategoriaNev)),
|
|
Mod = tanuloMulasztas.IsTanoraiCeluMulasztas ? MulasztasMod.Tanorai : MulasztasMod.TanoranKivuli,
|
|
Datum = tanuloMulasztas.Datum,
|
|
Ora = new TanitasiOraResponse
|
|
{
|
|
Oraszam = tanuloMulasztas.TanitasiOraOraszam.HasValue ? tanuloMulasztas.TanitasiOraOraszam : null,
|
|
KezdoDatum = tanuloMulasztas.TanitasiOraKezdoDatum,
|
|
VegDatum = tanuloMulasztas.TanitasiOraVegDatum
|
|
},
|
|
IgazolasAllapota =
|
|
tanuloMulasztas.Igazolt.HasValue ?
|
|
tanuloMulasztas.Igazolt.Value ? IgazolasAllapota.Igazolt : IgazolasAllapota.Igazolatlan
|
|
: IgazolasAllapota.Igazolando,
|
|
|
|
RogzitoTanar = !tanuloMulasztas.HelyettesitesTipusa.HasValue ?
|
|
new TanarSimplifiedResponse { Uid = new TanarUid(tanuloMulasztas.TanarId.Value), Nev = tanuloMulasztas.TanarNev } :
|
|
new TanarSimplifiedResponse { Uid = new TanarUid(tanuloMulasztas.HelyettesitoTanarId.Value), Nev = tanuloMulasztas.HelyettesitoTanarNev },
|
|
OsztalyCsoport = new OsztalyCsoportSimplifiedResponse
|
|
{
|
|
Uid = new OsztalyCsoportUid(tanuloMulasztas.OsztalyCsoportId)
|
|
}
|
|
};
|
|
|
|
if (!response.Add(mulasztas))
|
|
{
|
|
throw new BlException(BlExceptionType.DuplikaltKulcs);
|
|
}
|
|
}
|
|
|
|
return RequestFilterLogic.CreateUidFilteredListResponse<HashSet<MulasztasListResponse>, MulasztasListRequest, MulasztasUid>(response, request);
|
|
}
|
|
}
|
|
}
|