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 GetTanuloErtekelesei(DefaultConnectionParameters defaultConnectionParameters, ErtekelesGetRequestCo request) { var response = new List(); 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() { request.TanuloId }, TantargyUids = new List() { request.TantargyId.ToString() } }).Tables[0]; if (tanuloErtekelesei.Rows.Count > 0) { helper.RemoveTanuloJogosultsagMiattiErtekelesek(new List() { request.TanuloId }, tanuloErtekelesei); List egyszerAdhatoErtekelesTipusIds = EnumExtensions.GetErtekelesTipusDictionaryItems(defaultConnectionParameters.TanevId, true).Select(x => x.Id).ToList(); foreach (var ertekeles in tanuloErtekelesei.ToDaoList()) { 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(ertekeles.TipusId, ertekeles.TipusNeve), Mod = ertekeles.ErtekelesModId.HasValue ? new NaploEnumCo(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; } } }