init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,127 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.ParameterClasses;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo
|
||||
{
|
||||
public static class EgyediOraSubqueries
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the filters to be executory from the template. The order of filters does not matter.
|
||||
/// </summary>
|
||||
public static List<JavasoltJelenletGetResponseCo> ListJavasoltJelenlet(int teacherId, string intezmenyAzonosito, int tanevId, IDalHandler h, JavasoltJelenletGetRequestCo request, Enums.OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum, int intezmenyId)
|
||||
{
|
||||
var response = new List<JavasoltJelenletGetResponseCo>();
|
||||
|
||||
foreach (var egyediOraKey in request.Key)
|
||||
{
|
||||
var osztalyTanuloi = OraSubqueries.GetOsztalyTanuloi(teacherId, new OsztalyTanuloiRequestCo() { OsztalyCsoportId = egyediOraKey.OsztalyCsoportId, OraShortDatuma = egyediOraKey.OraKezdetDatuma }, intezmenyAzonosito, intezmenyId, tanevId);
|
||||
var igazolasLista = h.IgazolasDal().GetIgazolasokListajaGrid(
|
||||
new IgazolasokListajaSearchPCO
|
||||
{
|
||||
OsztalyCsoportSearch = egyediOraKey.OsztalyCsoportId,
|
||||
IgazolasDatuma = egyediOraKey.OraKezdetDatuma
|
||||
},
|
||||
oktatasNevelesKategoriaEnum).Tables[0];
|
||||
|
||||
response.Add(new JavasoltJelenletGetResponseCo
|
||||
{
|
||||
TantargyId = egyediOraKey.TantargyId,
|
||||
OsztalyCsoportId = egyediOraKey.OsztalyCsoportId,
|
||||
OraKezdetDatuma = egyediOraKey.OraKezdetDatuma,
|
||||
TanuloLista = GetTanuloListaWithSzuroLista(osztalyTanuloi.TanuloLista, igazolasLista, egyediOraKey.TantargyId, egyediOraKey.OraKezdetDatuma, egyediOraKey.OraVegDatuma, egyediOraKey.OsztalyCsoportId)
|
||||
});
|
||||
}
|
||||
|
||||
return response;
|
||||
|
||||
bool HasTanuloIgazolas(int tanuloId, DataTable igazolasLista) => igazolasLista.AsEnumerable().Any(x => x.Field<int>("TanuloId") == tanuloId);
|
||||
|
||||
List<JavasoltJelenletTanuloGetResponseCo> GetTanuloListaWithSzuroLista(List<TanuloResponseCo> tanuloLista, DataTable igazolasLista, int tantargyId, DateTime oraKezdetDatuma, DateTime oraVegDatuma, int osztalyCsoportId)
|
||||
{
|
||||
var javasoltJelenletTanuloLista = new List<JavasoltJelenletTanuloGetResponseCo>();
|
||||
|
||||
if (!tanuloLista.Any())
|
||||
{
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
|
||||
var parhuzamosOranNaplozottTanuloIdList = EgyediOraLogic.ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdetDatuma, oraVegDatuma, new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId), h);
|
||||
var elozoOranHianyzottTanuloIdList = OraLogic.ListElozoOranHianyzottTanuloId(oraKezdetDatuma, osztalyCsoportId, teacherId, intezmenyId, intezmenyAzonosito, tanevId);
|
||||
var isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled = SystemSettingsLogic.IsMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled(intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var isMagantanuloOralatogatasAloliMentessegEnabled = SystemSettingsLogic.IsMagantanuloOralatogatasAloliMentessegEnabled(tantargyId, intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var felmentesek = FelmentesSubqueries.ListFelmentes(new FelmentesGetRequestCo
|
||||
{
|
||||
TanuloIds = tanuloLista.Select(t => t.Id),
|
||||
FelhasznaloId = teacherId,
|
||||
IntezmenyId = intezmenyId,
|
||||
IntezmenyAzonosito = intezmenyAzonosito,
|
||||
TanevId = tanevId,
|
||||
TantargyId = tantargyId
|
||||
});
|
||||
|
||||
foreach (var tanulo in tanuloLista)
|
||||
{
|
||||
var javasoltJelenletTemplateTipusSzuroLista = new List<IJavasoltJelenletSzuroGetResponseCo>
|
||||
{
|
||||
new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Default)
|
||||
};
|
||||
|
||||
if (HasTanuloIgazolas(tanulo.Id, igazolasLista))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Igazolas));
|
||||
}
|
||||
|
||||
if (elozoOranHianyzottTanuloIdList?.Contains(tanulo.Id) ?? false)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ElozoOranHianyzott));
|
||||
}
|
||||
|
||||
if (isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled && parhuzamosOranNaplozottTanuloIdList.Contains(tanulo.Id))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ParhuzamosOranNaplozott));
|
||||
}
|
||||
|
||||
if (felmentesek.ContainsKey(tanulo.Id) && TanuloLogic.CalculateIsNowFelmentett(felmentesek[tanulo.Id], oraKezdetDatuma, intezmenyId, intezmenyAzonosito, tanevId, FelmentesType.OralatogatasAlol))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Felmentes));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsSzakmaiGyakorlatonLevo)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.SzakmaiGyakorlat));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsJogviszonySzunetelteto)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.JogviszonySzuneteltetes));
|
||||
}
|
||||
|
||||
if (TanuloLogic.CalculateIsNowMagantanulo(tanulo.IsMaganTanulo, tanulo.MaganTanulosagKezdetDatuma, tanulo.MaganTanulosagVegeDatuma, oraKezdetDatuma) && isMagantanuloOralatogatasAloliMentessegEnabled)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.MagantanuloOralatogatasAloliMentesseg));
|
||||
}
|
||||
|
||||
javasoltJelenletTanuloLista.Add(new JavasoltJelenletTanuloGetResponseCo
|
||||
{
|
||||
TanuloId = tanulo.Id,
|
||||
JavasoltJelenletTemplateTipusSzuroLista = javasoltJelenletTemplateTipusSzuroLista
|
||||
});
|
||||
}
|
||||
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo
|
||||
{
|
||||
public static class FelmentesSubqueries
|
||||
{
|
||||
public static Dictionary<int, List<FelmentesGetResponseCo>> ListFelmentes(FelmentesGetRequestCo request)
|
||||
{
|
||||
var result = new Dictionary<int, List<FelmentesGetResponseCo>>();
|
||||
|
||||
foreach (DataRow tanuloFelmentes in new TanuloHelper(new MobileConnectionType(request.FelhasznaloId, request.IntezmenyId, request.IntezmenyAzonosito, request.TanevId)).GetTanulokFelmentesei(request.TanuloIds, tantargyId: request.TantargyId).Tables[0].Rows)
|
||||
{
|
||||
if (request.TantargyId.IsEntityId() && tanuloFelmentes.Field<int>("TantargyId") == request.TantargyId)
|
||||
{
|
||||
if (result.ContainsKey(tanuloFelmentes.Field<int>("TanuloId")))
|
||||
{
|
||||
|
||||
result[tanuloFelmentes.Field<int>("TanuloId")].Add(new FelmentesGetResponseCo
|
||||
{
|
||||
Id = tanuloFelmentes.Field<int>("ID"),
|
||||
TantargyId = tanuloFelmentes.Field<int>("TantargyId"),
|
||||
TantargyNev = tanuloFelmentes.Field<string>("TantargyNev"),
|
||||
IsErtekelesAlolFelmentett = (bool)tanuloFelmentes["ErtekelesMentesites_BOOL"],
|
||||
IsOralatogatasAlolFelmentett = (bool)tanuloFelmentes["OraMentesites_BOOL"],
|
||||
FelmentesOkSzovege = tanuloFelmentes.Field<string>("FelmentesOka"),
|
||||
KezdetDatuma = tanuloFelmentes.Field<DateTime?>("Kezdete"),
|
||||
VegDatuma = tanuloFelmentes.Field<DateTime?>("Vege"),
|
||||
IsSzovegesenErtekelheto = (bool)tanuloFelmentes["SzovegesenErtekelheto_BOOL"]
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
result.Add(tanuloFelmentes.Field<int>("TanuloId"), new List<FelmentesGetResponseCo>()
|
||||
{
|
||||
new FelmentesGetResponseCo
|
||||
{
|
||||
Id = tanuloFelmentes.Field<int>("ID"),
|
||||
TantargyId = tanuloFelmentes.Field<int>("TantargyId"),
|
||||
TantargyNev = tanuloFelmentes.Field<string>("TantargyNev"),
|
||||
IsErtekelesAlolFelmentett = (bool)tanuloFelmentes["ErtekelesMentesites_BOOL"],
|
||||
IsOralatogatasAlolFelmentett = (bool)tanuloFelmentes["OraMentesites_BOOL"],
|
||||
FelmentesOkSzovege = tanuloFelmentes.Field<string>("FelmentesOka"),
|
||||
KezdetDatuma = tanuloFelmentes.Field<DateTime?>("Kezdete"),
|
||||
VegDatuma = tanuloFelmentes.Field<DateTime?>("Vege"),
|
||||
IsSzovegesenErtekelheto = (bool)tanuloFelmentes["SzovegesenErtekelheto_BOOL"]
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
using System;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.OpenBoard;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get
|
||||
{
|
||||
public static class FeltolthetoFajlokSzamaGetSubqueries
|
||||
{
|
||||
public static FeltolthetoFajlokSzamaResponseCo GetFeltolthetoFajlokSzama(DefaultConnectionParameters defaultConnectionParameters, FeltolthetoFajlokSzamaRequestCo request)
|
||||
{
|
||||
var response = new FeltolthetoFajlokSzamaResponseCo();
|
||||
if (request.TanitasiOraId.HasValue && request.OrarendiOraId.HasValue)
|
||||
{
|
||||
response.Exception = new ValidationException("Hibás kérelem!");
|
||||
return response;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var openBoardHelper = new OpenBoardHelper(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId));
|
||||
|
||||
int feltoltottFajlokSzama = openBoardHelper.GetFeltoltottFajlokSzama(DateTime.Now, request.OrarendiOraId, request.TanitasiOraId);
|
||||
int feltolthetoFajlokSzama = Constant.FeltolthetoFajlokMaxSzama - feltoltottFajlokSzama;
|
||||
|
||||
if (feltolthetoFajlokSzama < 1)
|
||||
{
|
||||
response.FeltolthetoFajlokSzama = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
response.FeltolthetoFajlokSzama = feltolthetoFajlokSzama;
|
||||
}
|
||||
}
|
||||
|
||||
catch (ValidationException e)
|
||||
{
|
||||
response.Exception = e;
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
using System.Collections.Generic;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanar;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Framework.Util;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get
|
||||
{
|
||||
public static class IskolaorGetSubqueries
|
||||
{
|
||||
public static IConnectionType ConnectionType;
|
||||
|
||||
public static List<IskolaorResponseCo> Iskolaor(int tanarId, DefaultConnectionParameters defaultConnectionParameters)
|
||||
{
|
||||
ConnectionType = new MobileConnectionType(tanarId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId);
|
||||
|
||||
var iskolaorAlkalmazottakList = new AlkalmazottHelper(ConnectionType).GetIskolaor();
|
||||
|
||||
var response = new List<IskolaorResponseCo>();
|
||||
|
||||
if (iskolaorAlkalmazottakList.Count > 0)
|
||||
{
|
||||
foreach (var iskolaor in iskolaorAlkalmazottakList)
|
||||
{
|
||||
var iskolaorResponseCo = new IskolaorResponseCo
|
||||
{
|
||||
Id = iskolaor.Id,
|
||||
Nev = iskolaor.Nev,
|
||||
FeladatEllatasiHelyId = iskolaor.FeladatEllatasiHelyId,
|
||||
FeladatEllatasiHely = iskolaor.MukodesiHelyNeve + " - " + iskolaor.OktatasiNevelesiFeladatTipusId.GetItemNameFromCache(defaultConnectionParameters.TanevId, defaultConnectionParameters.IntezmenyAzonosito),
|
||||
EmailCim = iskolaor.AlapertelmezettEmailCim,
|
||||
Telefonszam = iskolaor.AlapertelmezettTelefonszam,
|
||||
IdpEgyediAzonosito = iskolaor.IdpEgyediAzonosito.ToString(),
|
||||
IntezmenyAzonosito = defaultConnectionParameters.IntezmenyAzonosito
|
||||
};
|
||||
|
||||
response.Add(iskolaorResponseCo);
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
using System.Collections.Generic;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Orarend;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get
|
||||
{
|
||||
public static class OrarendGetSubqueries
|
||||
{
|
||||
public static ResponseWrapperCo<List<OraGetResponseCo>> OraLista(int teacherId, IDalHandler h, int intezmenyId, int tanevId, OraGetRequestCo request, string intezmenyAzonosito)
|
||||
{
|
||||
var returnObject = new ResponseWrapperCo<List<OraGetResponseCo>>(request.Hash);
|
||||
//if (returnObject.IsDatabaseHashOk) return returnObject;
|
||||
|
||||
var oraCoList = new List<OraGetResponseCo>();
|
||||
|
||||
var eventList = new OrarendHelper(new DalHandlerConnectionType(new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId), h))
|
||||
.GetOrarendElemekMobilNaplo(request.Datum, request.Datum.AddDays(1), teacherId);
|
||||
|
||||
foreach (var tanarOra in eventList)
|
||||
{
|
||||
if (tanarOra.allDay)
|
||||
continue; //Különleges napok átugrása
|
||||
var oraResponseCo = new OraGetResponseCo
|
||||
{
|
||||
OrarendiOraId = tanarOra.oraType == CalendarOraTypeEnum.OrarendiOra || tanarOra.oraType == CalendarOraTypeEnum.TanoranKivuliFoglalkozas ? tanarOra.id : (int?)null,
|
||||
TanitasiOraId = tanarOra.oraType != CalendarOraTypeEnum.OrarendiOra && tanarOra.oraType != CalendarOraTypeEnum.TanoranKivuliFoglalkozas ? tanarOra.id : (int?)null,
|
||||
Allapot = tanarOra.OraAllapota,
|
||||
Kezdete = tanarOra.start.Value,
|
||||
Vege = tanarOra.end.Value,
|
||||
Oraszam = tanarOra.hanyadikora,
|
||||
IsElmaradt = tanarOra.isElmaradt,
|
||||
Tema = tanarOra.Tema,
|
||||
TantargyId = tanarOra.TantargyId,
|
||||
TantargyNev = tanarOra.TantargyTeljesNev,
|
||||
TantargyKategoria = tanarOra.TantargyKategoria,
|
||||
HelyettesitoId = tanarOra.helyettesitoId,
|
||||
OsztalyCsoportId = tanarOra.TanevRendOsztalyCsoportId,
|
||||
OsztalyCsoportNev = tanarOra.OsztalyCsoport,
|
||||
TeremNev = tanarOra.Terem,
|
||||
OraTulajdonosTanar = new TanarSimplifiedGetResponseCo { Id = tanarOra.TanarId, Nev = tanarOra.TanarNev },
|
||||
EvesOraszam = tanarOra.EvesOraSorszam
|
||||
};
|
||||
|
||||
var dktFeladatHelper = new DktFeladatHelper(new DalHandlerConnectionType(new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId), h));
|
||||
if (oraResponseCo.Allapot == TanoraAllapotaEnum.Naplozott)
|
||||
{
|
||||
var haziFeladatCo = dktFeladatHelper.GetTanitasiOraHaziFeladatDetail(oraResponseCo.TanitasiOraId, null, false);
|
||||
SetHaziFeladatData(oraResponseCo, haziFeladatCo);
|
||||
}
|
||||
else if (oraResponseCo.Allapot == TanoraAllapotaEnum.Nem_naplozott)
|
||||
{
|
||||
var haziFeladatCo = dktFeladatHelper.GetOrarendiOraHaziFeladatDetail(oraResponseCo.OrarendiOraId, request.Datum, false, null, null);
|
||||
SetHaziFeladatData(oraResponseCo, haziFeladatCo);
|
||||
}
|
||||
|
||||
if (tanarOra.hanyadikora == -1 || tanarOra.oraType == CalendarOraTypeEnum.TanoranKivuliFoglalkozas || tanarOra.oraType == CalendarOraTypeEnum.TanoranKivuliNaplozottFoglalkozas)
|
||||
{
|
||||
oraResponseCo.Oraszam = null;
|
||||
}
|
||||
|
||||
if (tanarOra.oraType != CalendarOraTypeEnum.TanevRendjeEsemeny)
|
||||
{
|
||||
var helper = new TanoraHelper(new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId));
|
||||
|
||||
oraResponseCo.EvesOraszam = helper.GetOraEvesSorszamaSP(oraResponseCo.TantargyId, oraResponseCo.OsztalyCsoportId, oraResponseCo.Kezdete, oraResponseCo.OraTulajdonosTanar.Id);
|
||||
}
|
||||
|
||||
oraCoList.Add(oraResponseCo);
|
||||
}
|
||||
|
||||
returnObject.FillData(oraCoList);
|
||||
return returnObject;
|
||||
}
|
||||
|
||||
private static OraGetResponseCo SetHaziFeladatData(OraGetResponseCo oraResponseCo, TanarHaziFeladatDetailCO haziFeladatCo)
|
||||
{
|
||||
if (haziFeladatCo != null && haziFeladatCo.Id.HasValue && haziFeladatCo.Id > 0)
|
||||
{
|
||||
oraResponseCo.HazifeladatId = haziFeladatCo.Id;
|
||||
oraResponseCo.HazifeladatSzovege = haziFeladatCo.Szoveg?.Replace("<a", "<a target=\"_blank\"");
|
||||
oraResponseCo.HazifeladatHatarido = haziFeladatCo.Hatarido;
|
||||
}
|
||||
|
||||
return oraResponseCo;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanar;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Framework.Util;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get
|
||||
{
|
||||
public static class TanarGetSubqueries
|
||||
{
|
||||
public static IConnectionType ConnectionType;
|
||||
|
||||
public static ProfilResponseCo Profil(int tanarId, DefaultConnectionParameters defaultConnectionParameters)
|
||||
{
|
||||
ConnectionType = new MobileConnectionType(tanarId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId);
|
||||
|
||||
var dataRow = new TanarHelper(ConnectionType).GetProfil();
|
||||
|
||||
var tanarProfil = new TanarProfilCo
|
||||
{
|
||||
Id = SDAConvert.ToInt32(dataRow["Id"]),
|
||||
Nev = SDAConvert.ToString(dataRow["Nev"]),
|
||||
FeladatEllatasiHelyId = SDAConvert.ToInt32(dataRow["FeladatEllatasiHelyId"]),
|
||||
MukodesiHelyNeve = SDAConvert.ToString(dataRow["MukodesiHelyNev"]),
|
||||
OktatasiNevelesiFeladatNeve = SDAConvert.ToInt32(dataRow["OktatasiNevelesiFeladatTipusId"]).GetItemNameFromCache(defaultConnectionParameters.TanevId, defaultConnectionParameters.IntezmenyAzonosito),
|
||||
MunkahelyiEmailCim = SDAConvert.ToString(dataRow["MunkahelyiEmailCim"]),
|
||||
PublikusEmailCim = SDAConvert.ToString(dataRow["PublikusEmailCim"]),
|
||||
PublikusTelefonszam = SDAConvert.ToString(dataRow["PublikusTelefonszam"])
|
||||
};
|
||||
|
||||
var response = new ProfilResponseCo();
|
||||
|
||||
if (tanarProfil != null)
|
||||
{
|
||||
response.Id = tanarProfil.Id;
|
||||
response.Nev = tanarProfil.Nev;
|
||||
response.Kep = null;
|
||||
response.FeladatEllatasiHelyId = tanarProfil.FeladatEllatasiHelyId;
|
||||
response.FeladatEllatasiHely = $"{tanarProfil.MukodesiHelyNeve} - {tanarProfil.OktatasiNevelesiFeladatNeve}";
|
||||
response.MunkahelyiEmailCim = tanarProfil.MunkahelyiEmailCim != "" ? tanarProfil.MunkahelyiEmailCim : null;
|
||||
response.PublikusEmailCim = tanarProfil.PublikusEmailCim != "" ? tanarProfil.PublikusEmailCim : null;
|
||||
response.PublikusTelefonszam = tanarProfil.PublikusTelefonszam != "" ? tanarProfil.PublikusTelefonszam : null;
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Logic.TanuloErtekeles;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Logic;
|
||||
using Kreta.Enums;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get
|
||||
{
|
||||
public static class TanuloErtekeleseiGetSubqueries
|
||||
{
|
||||
public static List<ErtekelesGetResponseCo> GetTanuloErtekelesei(DefaultConnectionParameters defaultConnectionParameters, ErtekelesGetRequestCo request)
|
||||
{
|
||||
var response = new List<ErtekelesGetResponseCo>();
|
||||
var helper = new TanuloErtekelesHelper(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId));
|
||||
|
||||
var tanuloErtekelesei = helper.GetTanuloErtekelesListDataSet(new TanuloErtekelesListCo
|
||||
{
|
||||
TanevId = defaultConnectionParameters.TanevId,
|
||||
TanuloIds = new List<int>() { request.TanuloId },
|
||||
TantargyUids = new List<string>() { request.TantargyId.ToString() }
|
||||
}).Tables[0];
|
||||
|
||||
if (tanuloErtekelesei.Rows.Count > 0)
|
||||
{
|
||||
helper.RemoveTanuloJogosultsagMiattiErtekelesek(new List<int>() { request.TanuloId }, tanuloErtekelesei);
|
||||
|
||||
List<int> egyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(defaultConnectionParameters.TanevId, true).Select(x => x.Id).ToList();
|
||||
foreach (var ertekeles in tanuloErtekelesei.ToDaoList<ErtekelesResponseDao>())
|
||||
{
|
||||
var ertekelesOsztalyzatValue = SDAConvert.ToNullableInt32(TanuloErtekelesLogicBase.GetOsztalyzatTextShort(ertekeles.ErtekelesOsztalyzatId, egyszerAdhatoErtekelesTipusIds, true));
|
||||
|
||||
var ertekFajta = ertekelesOsztalyzatValue.HasValue ? ErtekelesErtekFajta.Osztalyzat
|
||||
: !string.IsNullOrWhiteSpace(ertekeles.ErtekelesSzoveg) ? ErtekelesErtekFajta.Szoveges
|
||||
: ertekeles.ErtekelesSzazalekErteke != null ? ErtekelesErtekFajta.Szazalekos
|
||||
: ErtekelesErtekFajta.None;
|
||||
|
||||
var ertekelesResponse = new ErtekelesGetResponseCo
|
||||
{
|
||||
Id = ertekeles.Id,
|
||||
Datum = ertekeles.Datum,
|
||||
Tipus = new NaploEnumCo<ErtekelesTipusEnum>(ertekeles.TipusId, ertekeles.TipusNeve),
|
||||
Mod = ertekeles.ErtekelesModId.HasValue ? new NaploEnumCo<ErtekelesModEnum>(ertekeles.ErtekelesModId.Value, ertekeles.ErtekelesModNeve) : null,
|
||||
Suly = ertekeles.ErtekelesSuly,
|
||||
Tema = string.IsNullOrWhiteSpace(ertekeles.ErtekelesTema) ? null : ertekeles.ErtekelesTema
|
||||
};
|
||||
|
||||
ertekelesResponse.Ertekeles = new ErtekelesFajtaCo();
|
||||
|
||||
switch (ertekFajta)
|
||||
{
|
||||
case ErtekelesErtekFajta.Osztalyzat:
|
||||
ertekelesResponse.Ertekeles.Osztalyzat = ertekelesOsztalyzatValue;
|
||||
break;
|
||||
case ErtekelesErtekFajta.Szoveges:
|
||||
ertekelesResponse.Ertekeles.Szoveg = ertekeles.ErtekelesSzoveg;
|
||||
break;
|
||||
case ErtekelesErtekFajta.Szazalekos:
|
||||
ertekelesResponse.Ertekeles.Szazalek = ertekeles.ErtekelesSzazalekErteke;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
response.Add(ertekelesResponse);
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions.Enum;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.ParameterClasses;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo
|
||||
{
|
||||
public static class OrarendiOraSubqueries
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the filters to be executory from the template. The order of filters does not matter.
|
||||
/// </summary>
|
||||
public static List<JavasoltJelenletGetResponseCo> ListJavasoltJelenlet(int teacherId, int intezmenyId, string intezmenyAzonosito, int tanevId, IDalHandler h, JavasoltJelenletGetRequestCo request, Enums.OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum)
|
||||
{
|
||||
var response = new List<JavasoltJelenletGetResponseCo>();
|
||||
var tanarHelyettesitesLogic = new HelyettesitesLogic.Tanar(teacherId, tanevId, intezmenyId, intezmenyAzonosito, oktatasNevelesKategoriaEnum);
|
||||
|
||||
foreach (var orarendiOraKey in request.Key)
|
||||
{
|
||||
var orarendiOraEntity = h.OrarendiOra().Get(orarendiOraKey.OrarendiOraId);
|
||||
|
||||
if (!orarendiOraKey.IsHelyettesitesKeresoAltalTalaltOra &&
|
||||
orarendiOraEntity.TanarId != teacherId &&
|
||||
!tanarHelyettesitesLogic.IsHelyettesito(orarendiOraEntity.OsztalyCsoportId, orarendiOraEntity.TantargyId))
|
||||
{
|
||||
throw new ValidationException(ValidationErrorType.Undefined, NaploApiResource.NincsJogosultsagaCsakASajatVagyHelyettesitesiOraKerdezhetoLe);
|
||||
}
|
||||
|
||||
var osztalyTanuloi = OraSubqueries.GetOsztalyTanuloi(teacherId, new OsztalyTanuloiRequestCo() { OsztalyCsoportId = orarendiOraEntity.OsztalyCsoportId, OraShortDatuma = orarendiOraKey.OraKezdetDatuma }, intezmenyAzonosito, intezmenyId, tanevId);
|
||||
var igazolasLista = h.IgazolasDal().GetIgazolasokListajaGrid(
|
||||
new IgazolasokListajaSearchPCO
|
||||
{
|
||||
OsztalyCsoportSearch = orarendiOraEntity.OsztalyCsoportId,
|
||||
IgazolasDatuma = orarendiOraKey.OraKezdetDatuma
|
||||
},
|
||||
oktatasNevelesKategoriaEnum).Tables[0];
|
||||
|
||||
response.Add(new JavasoltJelenletGetResponseCo
|
||||
{
|
||||
OrarendiOraId = orarendiOraKey.OrarendiOraId,
|
||||
OraKezdetDatuma = orarendiOraKey.OraKezdetDatuma,
|
||||
TanuloLista = GetTanuloListaWithSzuroLista(osztalyTanuloi.TanuloLista, igazolasLista, orarendiOraEntity.TantargyId, orarendiOraKey.OraKezdetDatuma, orarendiOraKey.OraVegDatuma, orarendiOraEntity.OsztalyCsoportId)
|
||||
});
|
||||
}
|
||||
|
||||
return response;
|
||||
|
||||
bool HasTanuloIgazolas(int tanuloId, DataTable igazolasLista) => igazolasLista.AsEnumerable().Any(x => x.Field<int>("TanuloId") == tanuloId);
|
||||
|
||||
List<JavasoltJelenletTanuloGetResponseCo> GetTanuloListaWithSzuroLista(List<TanuloResponseCo> tanuloLista, DataTable igazolasLista, int tantargyId, DateTime oraKezdetDatuma, DateTime oraVegDatuma, int osztalyCsoportId)
|
||||
{
|
||||
var javasoltJelenletTanuloLista = new List<JavasoltJelenletTanuloGetResponseCo>();
|
||||
|
||||
if (!tanuloLista.Any())
|
||||
{
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
|
||||
var parhuzamosOranNaplozottTanuloIdList = OrarendiOraLogic.ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdetDatuma, oraVegDatuma, new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId), h);
|
||||
var elozoOranHianyzottTanuloIdList = OraLogic.ListElozoOranHianyzottTanuloId(oraKezdetDatuma, osztalyCsoportId, teacherId, intezmenyId, intezmenyAzonosito, tanevId);
|
||||
var isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled = SystemSettingsLogic.IsMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled(intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var isMagantanuloOralatogatasAloliMentessegEnabled = SystemSettingsLogic.IsMagantanuloOralatogatasAloliMentessegEnabled(tantargyId, intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var felmentesek = FelmentesSubqueries.ListFelmentes(new FelmentesGetRequestCo
|
||||
{
|
||||
TanuloIds = tanuloLista.Select(t => t.Id),
|
||||
FelhasznaloId = teacherId,
|
||||
IntezmenyId = intezmenyId,
|
||||
IntezmenyAzonosito = intezmenyAzonosito,
|
||||
TanevId = tanevId,
|
||||
TantargyId = tantargyId
|
||||
});
|
||||
|
||||
foreach (var tanulo in tanuloLista)
|
||||
{
|
||||
var javasoltJelenletTemplateTipusSzuroLista = new List<IJavasoltJelenletSzuroGetResponseCo>
|
||||
{
|
||||
new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Default)
|
||||
};
|
||||
|
||||
if (HasTanuloIgazolas(tanulo.Id, igazolasLista))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Igazolas));
|
||||
}
|
||||
|
||||
if (elozoOranHianyzottTanuloIdList?.Contains(tanulo.Id) ?? false)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ElozoOranHianyzott));
|
||||
}
|
||||
|
||||
if (isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled && parhuzamosOranNaplozottTanuloIdList.Contains(tanulo.Id))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ParhuzamosOranNaplozott));
|
||||
}
|
||||
|
||||
if (felmentesek.ContainsKey(tanulo.Id) && TanuloLogic.CalculateIsNowFelmentett(felmentesek[tanulo.Id], oraKezdetDatuma, intezmenyId, intezmenyAzonosito, tanevId, FelmentesType.OralatogatasAlol))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Felmentes));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsSzakmaiGyakorlatonLevo)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.SzakmaiGyakorlat));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsJogviszonySzunetelteto)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.JogviszonySzuneteltetes));
|
||||
}
|
||||
|
||||
if (TanuloLogic.CalculateIsNowMagantanulo(tanulo.IsMaganTanulo, tanulo.MaganTanulosagKezdetDatuma, tanulo.MaganTanulosagVegeDatuma, oraKezdetDatuma) && isMagantanuloOralatogatasAloliMentessegEnabled)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.MagantanuloOralatogatasAloliMentesseg));
|
||||
}
|
||||
|
||||
javasoltJelenletTanuloLista.Add(new JavasoltJelenletTanuloGetResponseCo
|
||||
{
|
||||
TanuloId = tanulo.Id,
|
||||
JavasoltJelenletTemplateTipusSzuroLista = javasoltJelenletTemplateTipusSzuroLista
|
||||
});
|
||||
}
|
||||
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions.Enum;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Post
|
||||
{
|
||||
public static class ErtekelesPostSubqueries
|
||||
{
|
||||
public static List<ErtekelesResponseCo> CreateOsztalyCsoportErtekeles(int teacherId, DefaultConnectionParameters defaultConnectionParameters, List<OsztalyCsoportErtekelesRequestCo> request)
|
||||
{
|
||||
var response = new List<ErtekelesResponseCo>();
|
||||
|
||||
if (IsRequestContainsDuplicatedItem(request))
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = new ValidationException("A kérés többször tartalmazza ugyanazt az értékelést!")
|
||||
});
|
||||
return response;
|
||||
}
|
||||
|
||||
var helper = new TanuloErtekelesHelper(new MobileConnectionType(teacherId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId));
|
||||
foreach (var osztalyCsoportErtekeles in request)
|
||||
{
|
||||
try
|
||||
{
|
||||
helper.SaveTanuloErtekelesListMobilV2(teacherId, osztalyCsoportErtekeles);
|
||||
}
|
||||
catch (ValidationException execption)
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = execption
|
||||
});
|
||||
}
|
||||
catch (EntityNotFoundException)
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = CreateMobileExeption(osztalyCsoportErtekeles.TanuloLista, ErrorResource.AzElemNemTalalhatoVagyToroltek)
|
||||
});
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = CreateMobileExeption(osztalyCsoportErtekeles.TanuloLista, ErrorResource.Hiba)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
private static ValidationException CreateMobileExeption(List<TanuloForOsztalyCsoportErtekelesRequestCo> tanuloList, string message)
|
||||
{
|
||||
var ex = new ValidationException(ValidationErrorType.Undefined, TanuloErtekelesResource.HibasErtekeles);
|
||||
foreach (var item in tanuloList)
|
||||
{
|
||||
ex.AddValidationItem(item.MobilId.ToString(), message);
|
||||
}
|
||||
return ex;
|
||||
}
|
||||
|
||||
private static bool IsRequestContainsDuplicatedItem(List<OsztalyCsoportErtekelesRequestCo> request)
|
||||
{
|
||||
var requestUniqueItems = new List<(DateTime datum, int tantargyId, string tema, int tanuloErtekelesHashCode)>();
|
||||
|
||||
foreach (var item in request)
|
||||
{
|
||||
int tanuloErtekelesHashCode = item.TanuloLista.Select(x => $"{x.TanuloId} + {x.Ertekeles.OsztalyzatTipus} + {x.Ertekeles.Szazalek} + {x.Ertekeles.Szoveg}").Aggregate((a, b) => a + b).GetHashCode();
|
||||
var requestItem = (item.Datum, item.TantargyId, item.Tema, tanuloErtekelesHashCode);
|
||||
if (requestUniqueItems.Contains(requestItem))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
requestUniqueItems.Add(requestItem);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
using System;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.OpenBoard;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Enums;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Post
|
||||
{
|
||||
public static class FeltoltottFajlPostSubqueries
|
||||
{
|
||||
public static FeltoltottFajlResponseCo CreateFajlFeltoltes(IDalHandler h, IFileServiceHelper fileServiceHelper, DefaultConnectionParameters defaultConnectionParameters, FeltoltottFajlRequestCo request)
|
||||
{
|
||||
var response = new FeltoltottFajlResponseCo();
|
||||
if (request.TanitasiOraId.HasValue && request.OrarendiOraId.HasValue)
|
||||
{
|
||||
response.Exception = new ValidationException("Hibás kérelem!");
|
||||
return response;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
IConnectionType connection = new DalHandlerConnectionType(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId), h);
|
||||
var openBoardHelper = new OpenBoardHelper(new DalHandlerConnectionType(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId), h), fileServiceHelper);
|
||||
var dktFileHelper = new DktFileHelper(new DalHandlerConnectionType(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId), h), fileServiceHelper);
|
||||
|
||||
int feltoltottFajlokSzama = openBoardHelper.GetFeltoltottFajlokSzama(DateTime.Now, request.OrarendiOraId, request.TanitasiOraId);
|
||||
int feltolthetoFajlokSzama = Constant.FeltolthetoFajlokMaxSzama - feltoltottFajlokSzama;
|
||||
|
||||
if (feltolthetoFajlokSzama < 1)
|
||||
{
|
||||
throw new ValidationException("Nem tölthető fel a fájl, mert elérte a maximális feltöltési limitet ehhez az órához!");
|
||||
}
|
||||
|
||||
DateTime ido = DateTime.Now;
|
||||
int sorszam = feltoltottFajlokSzama + 1;
|
||||
string fileName = $"Kep_{sorszam}_{ido.ToString(Constant.DateTimeFormat)}";
|
||||
string contentType = "image/jpeg";
|
||||
|
||||
var intezmenyGuid = new IntezmenyHelper(connection).GetIntezmenyiAdatok().IntezmenyGuid;
|
||||
|
||||
var path = $"OpenBoard/{intezmenyGuid}/{defaultConnectionParameters.TanevId}";
|
||||
if (request.TanitasiOraId.HasValue)
|
||||
{
|
||||
path += $"/TanitasiOra/{request.TanitasiOraId.Value}";
|
||||
}
|
||||
else if (request.OrarendiOraId.HasValue)
|
||||
{
|
||||
path += $"/OrarendiOra/{request.OrarendiOraId.Value}";
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ValidationException("Nem tartozhat Órarendi órához és Tanítási órához is a kép! Csak az egyik legyen megadva!");
|
||||
}
|
||||
|
||||
var fileId = dktFileHelper.UploadFile(string.Concat(fileName, ".jpeg"), Convert.FromBase64String(request.ContentAsBase64EncodedString.Replace("data:image/jpeg;base64,", "")), contentType, path);
|
||||
|
||||
var oraFileHelper = new OraFileHelper(connection);
|
||||
oraFileHelper.InsertFileToOraFile(fileId, request.OrarendiOraId, request.TanitasiOraId, ido.Date, (int)OraFileTipusEnum.openboard, true);
|
||||
|
||||
response.FeltolthetoFajlokSzama = feltolthetoFajlokSzama - 1;
|
||||
}
|
||||
catch (ValidationException e)
|
||||
{
|
||||
response.Exception = e;
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Naplozas;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas.Validacio;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Client.CoreApi;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions.Enum;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Post
|
||||
{
|
||||
public static class OrarendPostSubqueries
|
||||
{
|
||||
public static List<OraNaplozasResponseCo> CreateOraNaplozas(int teacherId, int intezmenyId, string intezmenyAzonosito, int tanevId, List<OraNaplozasRequestCo> request, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
|
||||
{
|
||||
var response = new List<OraNaplozasResponseCo>();
|
||||
|
||||
if (request.Count < 1)
|
||||
{
|
||||
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.NincsNaplozandoOra);
|
||||
}
|
||||
|
||||
var naploValidacioParameters = new NaploValidacioParameters(from: request.Min(x => x.Datum), to: request.Max(x => x.Datum).AddDays(1), new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId), felhasznaloSzerepkor: null);
|
||||
|
||||
var naploValidator = new NaploValidacio(naploValidacioParameters);
|
||||
CheckAzonosElem(request);
|
||||
|
||||
return OraNaplozas();
|
||||
|
||||
List<OraNaplozasResponseCo> OraNaplozas()
|
||||
{
|
||||
foreach (var naplozandoOra in request)
|
||||
{
|
||||
try
|
||||
{
|
||||
var blValidator = new BlValidator(naplozandoOra);
|
||||
if (!blValidator.IsValid)
|
||||
{
|
||||
throw blValidator.ConvertToValidationException();
|
||||
}
|
||||
var logicCo = new NaplozasMobilCo();
|
||||
naplozandoOra.ConvertTo(logicCo);
|
||||
var naplozasLogic = new NaplozasLogic(naploValidator, logicCo);
|
||||
naplozasLogic.SaveNaplozas(fileServiceHelper, coreApiClient);
|
||||
response.Add(new OraNaplozasResponseCo()
|
||||
{
|
||||
Exception = null,
|
||||
MobilId = naplozandoOra.MobilId
|
||||
});
|
||||
}
|
||||
catch (ValidationException execption)
|
||||
{
|
||||
response.Add(new OraNaplozasResponseCo()
|
||||
{
|
||||
Exception = execption,
|
||||
MobilId = naplozandoOra.MobilId
|
||||
});
|
||||
}
|
||||
catch (EntityNotFoundException)
|
||||
{
|
||||
response.Add(new OraNaplozasResponseCo()
|
||||
{
|
||||
Exception = new ValidationException(ValidationErrorType.Undefined, ErrorResource.NaplozasSikertelenAzOraMarNemLetezikAKivalasztottNapon),
|
||||
MobilId = naplozandoOra.MobilId
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
private static void CheckAzonosElem(List<OraNaplozasRequestCo> request)
|
||||
{
|
||||
var tupleList = new List<(int OraRendiOraId, DateTime Date)>();
|
||||
foreach (var naplozandoOra in request)
|
||||
{
|
||||
if (tupleList.Any(x => x.OraRendiOraId == naplozandoOra.OrarendiOraId && x.Date == naplozandoOra.Datum))
|
||||
{
|
||||
throw new ValidationException(ValidationErrorType.Undefined, ErrorResource.TobbszorosNaplozas);
|
||||
}
|
||||
|
||||
if (naplozandoOra.OrarendiOraId.HasValue)
|
||||
{
|
||||
tupleList.Add((OraRendiOraId: naplozandoOra.OrarendiOraId.Value, Date: naplozandoOra.Datum));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions.Enum;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.DataAccessManual.ParameterClasses;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo
|
||||
{
|
||||
public static class TanitasiOraSubqueries
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the filters to be executory from the template. The order of filters does not matter.
|
||||
/// </summary>
|
||||
public static List<JavasoltJelenletGetResponseCo> ListJavasoltJelenlet(int teacherId, int intezmenyId, string intezmenyAzonosito, int tanevId, IDalHandler h, JavasoltJelenletGetRequestCo request, Enums.OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum)
|
||||
{
|
||||
var response = new List<JavasoltJelenletGetResponseCo>();
|
||||
var tanarHelyettesitesLogic = new HelyettesitesLogic.Tanar(teacherId, tanevId, intezmenyId, intezmenyAzonosito, oktatasNevelesKategoriaEnum);
|
||||
|
||||
foreach (var tanitasiOraKey in request.Key)
|
||||
{
|
||||
var tanitasiOraEntity = h.TanitasiOra().Get(tanitasiOraKey.TanitasiOraId);
|
||||
|
||||
if (tanitasiOraEntity.TanarId != teacherId && !tanarHelyettesitesLogic.IsHelyettesito(tanitasiOraEntity.OsztalyCsoportId, tanitasiOraEntity.TantargyId))
|
||||
{
|
||||
throw new ValidationException(ValidationErrorType.Undefined, NaploApiResource.NincsJogosultsagaCsakASajatVagyHelyettesitesiOraKerdezhetoLe);
|
||||
}
|
||||
|
||||
var osztalyTanuloi = OraSubqueries.GetOsztalyTanuloi(teacherId, new OsztalyTanuloiRequestCo() { OsztalyCsoportId = tanitasiOraEntity.OsztalyCsoportId, OraShortDatuma = tanitasiOraEntity.Datum }, intezmenyAzonosito, intezmenyId, tanevId);
|
||||
var igazolasLista = h.IgazolasDal().GetIgazolasokListajaGrid(
|
||||
new IgazolasokListajaSearchPCO
|
||||
{
|
||||
OsztalyCsoportSearch = tanitasiOraEntity.OsztalyCsoportId,
|
||||
IgazolasDatuma = tanitasiOraEntity.OraKezdete
|
||||
},
|
||||
oktatasNevelesKategoriaEnum).Tables[0];
|
||||
|
||||
response.Add(new JavasoltJelenletGetResponseCo
|
||||
{
|
||||
TanitasiOraId = tanitasiOraKey.TanitasiOraId,
|
||||
TanuloLista = GetTanuloListaWithSzuroLista(osztalyTanuloi.TanuloLista, igazolasLista, tanitasiOraEntity.TantargyId, tanitasiOraEntity.OraKezdete, tanitasiOraEntity.OraVege, tanitasiOraKey.TanitasiOraId, tanitasiOraEntity.OsztalyCsoportId)
|
||||
});
|
||||
}
|
||||
|
||||
return response;
|
||||
|
||||
bool HasTanuloIgazolas(int tanuloId, DataTable igazolasLista) => igazolasLista.AsEnumerable().Any(x => x.Field<int>("TanuloId") == tanuloId);
|
||||
|
||||
List<JavasoltJelenletTanuloGetResponseCo> GetTanuloListaWithSzuroLista(List<TanuloResponseCo> tanuloLista, DataTable igazolasLista, int tantargyId, DateTime oraKezdetDatuma, DateTime oraVegDatuma, int tanitasiOraId, int osztalyCsoportId)
|
||||
{
|
||||
var javasoltJelenletTanuloLista = new List<JavasoltJelenletTanuloGetResponseCo>();
|
||||
|
||||
if (!tanuloLista.Any())
|
||||
{
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
|
||||
var parhuzamosOranNaplozottTanuloIdList = TanitasiOraLogic.ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdetDatuma, oraVegDatuma, tanitasiOraId, new MobileConnectionType(teacherId, intezmenyId, intezmenyAzonosito, tanevId), h);
|
||||
var elozoOranHianyzottTanuloIdList = OraLogic.ListElozoOranHianyzottTanuloId(oraKezdetDatuma, osztalyCsoportId, teacherId, intezmenyId, intezmenyAzonosito, tanevId);
|
||||
var isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled = SystemSettingsLogic.IsMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled(intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var isMagantanuloOralatogatasAloliMentessegEnabled = SystemSettingsLogic.IsMagantanuloOralatogatasAloliMentessegEnabled(tantargyId, intezmenyAzonosito, tanevId, teacherId, intezmenyId);
|
||||
var felmentesek = FelmentesSubqueries.ListFelmentes(new FelmentesGetRequestCo
|
||||
{
|
||||
TanuloIds = tanuloLista.Select(t => t.Id),
|
||||
FelhasznaloId = teacherId,
|
||||
IntezmenyId = intezmenyId,
|
||||
IntezmenyAzonosito = intezmenyAzonosito,
|
||||
TanevId = tanevId,
|
||||
TantargyId = tantargyId
|
||||
});
|
||||
|
||||
foreach (var tanulo in tanuloLista)
|
||||
{
|
||||
var javasoltJelenletTemplateTipusSzuroLista = new List<IJavasoltJelenletSzuroGetResponseCo>
|
||||
{
|
||||
new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Default)
|
||||
};
|
||||
|
||||
if (HasTanuloIgazolas(tanulo.Id, igazolasLista))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Igazolas));
|
||||
}
|
||||
|
||||
if (elozoOranHianyzottTanuloIdList?.Contains(tanulo.Id) ?? false)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ElozoOranHianyzott));
|
||||
}
|
||||
|
||||
if (isMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled && parhuzamosOranNaplozottTanuloIdList.Contains(tanulo.Id))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.ParhuzamosOranNaplozott));
|
||||
}
|
||||
|
||||
if (felmentesek.ContainsKey(tanulo.Id) && TanuloLogic.CalculateIsNowFelmentett(felmentesek[tanulo.Id], oraKezdetDatuma, intezmenyId, intezmenyAzonosito, tanevId, FelmentesType.OralatogatasAlol))
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.Felmentes));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsSzakmaiGyakorlatonLevo)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.SzakmaiGyakorlat));
|
||||
}
|
||||
|
||||
if (tanulo.TanugyiAdatok.IsJogviszonySzunetelteto)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.JogviszonySzuneteltetes));
|
||||
}
|
||||
|
||||
if (TanuloLogic.CalculateIsNowMagantanulo(tanulo.IsMaganTanulo, tanulo.MaganTanulosagKezdetDatuma, tanulo.MaganTanulosagVegeDatuma, oraKezdetDatuma) && isMagantanuloOralatogatasAloliMentessegEnabled)
|
||||
{
|
||||
javasoltJelenletTemplateTipusSzuroLista.Add(new JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType.MagantanuloOralatogatasAloliMentesseg));
|
||||
}
|
||||
|
||||
javasoltJelenletTanuloLista.Add(new JavasoltJelenletTanuloGetResponseCo
|
||||
{
|
||||
TanuloId = tanulo.Id,
|
||||
JavasoltJelenletTemplateTipusSzuroLista = javasoltJelenletTemplateTipusSzuroLista
|
||||
});
|
||||
}
|
||||
|
||||
return javasoltJelenletTanuloLista;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanmenet;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions.Enum;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo
|
||||
{
|
||||
public static class TanmenetSubqueries
|
||||
{
|
||||
public static List<TanmenetGetResponseCo> ListTanmenet(IDalHandler h, int teacherId, int tanevId, int intezmenyId, string intezmenyAzonosito, TanmenetGetRequestCo request)
|
||||
{
|
||||
var allowedRequestRecordLength = 10;
|
||||
if (request.Key.Length > allowedRequestRecordLength)
|
||||
{
|
||||
throw new ValidationException(ValidationErrorType.Undefined, $"Hiba történt, {nameof(allowedRequestRecordLength)}={allowedRequestRecordLength}!");
|
||||
}
|
||||
|
||||
var errors = new List<ValidationExceptionItem>();
|
||||
var tanarHelyettesitesLogic = new HelyettesitesLogic.Tanar(teacherId, tanevId, intezmenyId, intezmenyAzonosito, null);
|
||||
|
||||
for (int i = 0; i < request.Key.Length; i++)
|
||||
{
|
||||
var tanmenetKey = request.Key[i];
|
||||
|
||||
if (tanmenetKey.FeltoltoTanarId != teacherId && !tanarHelyettesitesLogic.IsHelyettesito(tanmenetKey.OsztalyCsoportId, tanmenetKey.TantargyId))
|
||||
{
|
||||
errors.Add(new ValidationExceptionItem(i.ToString(), $"Nincs jogosultsága, csak a saját vagy helyettesítési tanmenet kérdezhető le!"));
|
||||
}
|
||||
}
|
||||
|
||||
if (errors.Count > 0)
|
||||
{
|
||||
throw new ValidationException(ValidationErrorType.Undefined, "Hiba történt!", errors);
|
||||
}
|
||||
|
||||
var response = new List<TanmenetGetResponseCo>();
|
||||
var tanmenetDal = h.Tanmenet();
|
||||
|
||||
foreach (var tanmenetKey in request.Key)
|
||||
{
|
||||
var tanmenetItems = new List<TanmenetItemGetResponseCo>();
|
||||
var tanmenetItemDt = tanmenetDal.GetTanmenetek(tanmenetKey.TantargyId, tanmenetKey.OsztalyCsoportId, tanmenetKey.FeltoltoTanarId).Tables[0];
|
||||
foreach (DataRow tanmenetItem in tanmenetItemDt.Rows)
|
||||
{
|
||||
tanmenetItems.Add(new TanmenetItemGetResponseCo
|
||||
{
|
||||
Id = tanmenetItem.Field<int>("ID"),
|
||||
EvesOraszam = tanmenetItem.Field<int>("Oraszam"),
|
||||
Tema = tanmenetItem.Field<string>("Tema"),
|
||||
Megjegyzes = tanmenetItem.Field<string>("Megjegyzes"),
|
||||
Nev = tanmenetItem.Field<string>("Nev"),
|
||||
RovidNev = tanmenetItem.Field<string>("RovidNev")
|
||||
});
|
||||
}
|
||||
|
||||
response.Add(new TanmenetGetResponseCo
|
||||
{
|
||||
OsztalyCsoportId = tanmenetKey.OsztalyCsoportId,
|
||||
TantargyId = tanmenetKey.TantargyId,
|
||||
FeltoltoTanarId = tanmenetKey.FeltoltoTanarId,
|
||||
Items = tanmenetItems
|
||||
});
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Enum;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums.WebApi.Naplo;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.UtilityMethods
|
||||
{
|
||||
public static class EnumSubqueries
|
||||
{
|
||||
public static List<NaploEnumListItemCo> GetNaploEnum(IDalHandler h, int tanevId, EnumRequestCo request)
|
||||
{
|
||||
var naploEnumList = new List<NaploEnumListItemCo>();
|
||||
|
||||
var dal = h.AdatszotarDAL();
|
||||
DataTable adatszotarDt = new DataTable();
|
||||
|
||||
switch (request.EngedelyezettEnum.GetEnum())
|
||||
{
|
||||
case EngedelyezettEnumok.ErtekelesModEnum:
|
||||
adatszotarDt = dal.GetAdatszotarLathatoElemek(GeneratedAdatszotarTipusEnum.ErtekelesMod, tanevId).Tables[0];
|
||||
break;
|
||||
case EngedelyezettEnumok.ErtekelesTipusEnum:
|
||||
adatszotarDt = dal.GetAdatszotarLathatoElemek(GeneratedAdatszotarTipusEnum.ErtekelesTipus, tanevId).Tables[0];
|
||||
break;
|
||||
case EngedelyezettEnumok.OsztalyzatTipusEnum:
|
||||
adatszotarDt = dal.GetAdatszotarLathatoElemek(GeneratedAdatszotarTipusEnum.OsztalyzatTipus, tanevId).Tables[0];
|
||||
break;
|
||||
case EngedelyezettEnumok.MulasztasTipusEnum:
|
||||
adatszotarDt = dal.GetAdatszotarLathatoElemek(GeneratedAdatszotarTipusEnum.MulasztasTipus, tanevId).Tables[0];
|
||||
break;
|
||||
case EngedelyezettEnumok.EsemenyTipusEnum: /// TODO devKornél: mobilosokkal egyeztetve, ez itt hibás is, és nem is használják
|
||||
naploEnumList.Add(new NaploEnumListItemCo((int)EsemenyTipusEnum.HaziFeladatHiany, null, nameof(EsemenyTipusEnum.HaziFeladatHiany)));
|
||||
naploEnumList.Add(new NaploEnumListItemCo((int)EsemenyTipusEnum.Felszereleshiany, null, nameof(EsemenyTipusEnum.Felszereleshiany)));
|
||||
naploEnumList.Add(new NaploEnumListItemCo((int)EsemenyTipusEnum.SzakmaiMentessegNemHivatalos, null, nameof(EsemenyTipusEnum.SzakmaiMentessegNemHivatalos)));
|
||||
naploEnumList.Add(new NaploEnumListItemCo((int)EsemenyTipusEnum.Dicseret, null, nameof(EsemenyTipusEnum.Dicseret)));
|
||||
|
||||
return naploEnumList;
|
||||
}
|
||||
|
||||
foreach (DataRow item in adatszotarDt.Rows)
|
||||
{
|
||||
naploEnumList.Add(new NaploEnumListItemCo(item.Field<int>("ID"), null, item.Field<string>("Megnevezes")));
|
||||
}
|
||||
|
||||
return naploEnumList;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue