kreta/Kreta.BusinessLogic/Classes/MobileApi/Naplo/V2/SubqueriesRepo/Get/OrarendGetSubqueries.cs
2024-03-13 00:33:46 +01:00

93 lines
4.9 KiB
C#

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;
}
}
}