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

77 lines
4 KiB
C#

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