This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,9 @@
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo
{
public class NaploFacade : NaploFacadeBase
{
public NaploFacade(MobileUser mobileUser) : base(mobileUser) { }
}
}

View file

@ -0,0 +1,17 @@
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo
{
public class NaploFacadeBase
{
protected DefaultConnectionParameters DefaultConnectionParameters { get; }
protected MobileUser MobileUser { get; }
private NaploFacadeBase() { }
public NaploFacadeBase(MobileUser mobileUser)
{
MobileUser = mobileUser;
DefaultConnectionParameters = new DefaultConnectionParameters(mobileUser);
}
}
}

View file

@ -0,0 +1,156 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo
{
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
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.Enum;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.OpenBoard;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.JavasoltJelenletTemplate;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Orarend;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanar;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanmenet;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Naplozas;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.OpenBoard;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Get;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Post;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.UtilityMethods;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Client.CoreApi;
using Kreta.DataAccessManual;
using OrarendiOra = V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet;
using TanitasiOra = V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet;
public class NaploFacadeV2 : NaploFacade
{
private readonly IFileServiceHelper fileServiceHelper;
private readonly ICoreApiClient coreApiClient;
public NaploFacadeV2(MobileUser mobileUser, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient) : base(mobileUser)
{
this.fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
this.coreApiClient = coreApiClient ?? throw new ArgumentNullException(nameof(coreApiClient));
}
#region Tanar
public ResponseWrapperCo<ProfilResponseCo> Profil(ProfilRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
var returnObject = new ResponseWrapperCo<ProfilResponseCo>(request.Hash);
returnObject.FillData(TanarGetSubqueries.Profil(base.MobileUser.UserId, DefaultConnectionParameters));
return returnObject;
}, DefaultConnectionParameters.FelhasznaloId);
public ResponseWrapperCo<List<IskolaorResponseCo>> Iskolaor(IskolaorRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
var returnObject = new ResponseWrapperCo<List<IskolaorResponseCo>>(request.Hash);
returnObject.FillData(IskolaorGetSubqueries.Iskolaor(base.MobileUser.UserId, DefaultConnectionParameters));
return returnObject;
}, DefaultConnectionParameters.FelhasznaloId);
#endregion Tanar
#region Orarend
public ResponseWrapperCo<List<OraGetResponseCo>> OraLista(OraGetRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
return OrarendGetSubqueries.OraLista(base.MobileUser.UserId, h, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.TanevId, request, DefaultConnectionParameters.IntezmenyAzonosito);
}, DefaultConnectionParameters.FelhasznaloId);
public List<OraNaplozasResponseCo> CreateOraNaplozas(List<OraNaplozasRequestCo> request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
return OrarendPostSubqueries.CreateOraNaplozas(base.MobileUser.UserId, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, request, fileServiceHelper, coreApiClient);
}, DefaultConnectionParameters.FelhasznaloId);
#endregion Orarend
#region Ora
#region OrarendiOra
public List<OrarendiOra.JavasoltJelenletGetResponseCo> ListJavasoltJelenlet(OrarendiOra.JavasoltJelenletGetRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
return OrarendiOraSubqueries.ListJavasoltJelenlet(base.MobileUser.UserId, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h, request, null);
}, DefaultConnectionParameters.FelhasznaloId);
#endregion OrarendiOra
#region TanitasiOra
public List<TanitasiOra.JavasoltJelenletGetResponseCo> ListJavasoltJelenlet(TanitasiOra.JavasoltJelenletGetRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
return TanitasiOraSubqueries.ListJavasoltJelenlet(base.MobileUser.UserId, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h, request, Enums.OktNevelesiKategoriaEnum.NevelesOktatas);
}, DefaultConnectionParameters.FelhasznaloId);
#endregion TanitasiOra
public ResponseWrapperCo<List<FeljegyzesResponseCo>> FeljegyzesLista(FeljegyzesRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
return OraSubqueries.FeljegyzesLista(base.MobileUser.UserId, request, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId);
}, DefaultConnectionParameters.FelhasznaloId);
public ResponseWrapperCo<List<MulasztasResponseCo>> MulasztasLista(MulasztasRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
var returnObject = new ResponseWrapperCo<List<MulasztasResponseCo>>(request.Hash);
returnObject.FillData(OraSubqueries.MulasztasLista(base.MobileUser.UserId, request, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId));
return returnObject;
}, DefaultConnectionParameters.FelhasznaloId);
public ResponseWrapperCo<OsztalyTanuloiResponseCo> GetOsztalyTanuloi(OsztalyTanuloiRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
var returnObject = new ResponseWrapperCo<OsztalyTanuloiResponseCo>(request.Hash);
request.OraShortDatuma = DateTime.Now; ///TODO @DevKornel OraDatuma bekötése, hogy vizsgalja, ki van besorolva az adott napon
returnObject.FillData(OraSubqueries.GetOsztalyTanuloi(base.MobileUser.UserId, request, DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.TanevId));
return returnObject;
}, DefaultConnectionParameters.FelhasznaloId);
public ResponseWrapperCo<List<JavasoltJelenletTemplateGetResponseCo>> ListJavasoltJelenletTemplate(JavasoltJelenletTemplateGetRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
var returnObject = new ResponseWrapperCo<List<JavasoltJelenletTemplateGetResponseCo>>(request.Hash);
returnObject.FillData(OraSubqueries.ListJavasoltJelenletTemplate(base.MobileUser.UserId, request));
return returnObject;
}, DefaultConnectionParameters.FelhasznaloId);
#endregion Ora
#region Enum
public ResponseWrapperCo<List<NaploEnumListItemCo>> GetNaploEnum(EnumRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
var returnObject = new ResponseWrapperCo<List<NaploEnumListItemCo>>(request.Hash);
returnObject.FillData(EnumSubqueries.GetNaploEnum(h, DefaultConnectionParameters.TanevId, request));
return returnObject;
}, DefaultConnectionParameters.FelhasznaloId);
#endregion Enum
#region Tanmenet
public List<TanmenetGetResponseCo> ListTanmenet(TanmenetGetRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
return TanmenetSubqueries.ListTanmenet(h, base.MobileUser.UserId, DefaultConnectionParameters.TanevId, DefaultConnectionParameters.IntezmenyId, DefaultConnectionParameters.IntezmenyAzonosito, request);
}, DefaultConnectionParameters.FelhasznaloId);
#endregion Tanmenet
#region Ertekeles
public List<ErtekelesResponseCo> CreateOsztalyCsoportErtekeles(List<OsztalyCsoportErtekelesRequestCo> request) => ErtekelesPostSubqueries.CreateOsztalyCsoportErtekeles(MobileUser.UserId, DefaultConnectionParameters, request);
public List<ErtekelesGetResponseCo> GetTanuloErtekelesei(ErtekelesGetRequestCo request)
=> TanuloErtekeleseiGetSubqueries.GetTanuloErtekelesei(DefaultConnectionParameters, request);
#endregion Ertekeles
#region OpenBoard
public FeltoltottFajlResponseCo CreateFajlFeltoltes(FeltoltottFajlRequestCo request) => Dal.MobileConnection.Run(DefaultConnectionParameters.IntezmenyAzonosito, DefaultConnectionParameters.TanevId, h =>
{
return FeltoltottFajlPostSubqueries.CreateFajlFeltoltes(h, fileServiceHelper, DefaultConnectionParameters, request);
}, DefaultConnectionParameters.FelhasznaloId);
public FeltolthetoFajlokSzamaResponseCo GetFeltolthetoFajlokSzama(FeltolthetoFajlokSzamaRequestCo request)
=> FeltolthetoFajlokSzamaGetSubqueries.GetFeltolthetoFajlokSzama(DefaultConnectionParameters, request);
#endregion OpenBoard
}
}

View file

@ -0,0 +1,19 @@
using System.ComponentModel.DataAnnotations;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum
{
public enum ErtekelesErtekFajta
{
None,
[Display(Name = "Elégtelen (1) és Jeles (5) között az öt alapértelmezett érték")]
Osztalyzat = 1,
[Display(Name = "Szöveges értékelés")]
Szoveges = 2,
[Display(Name = "Százalékos értékelés")]
Szazalekos = 3,
[Display(Name = "Rossz, Változó, Jó, Példás")]
MagatartasErtek = 4,
[Display(Name = "Hanyag, Változó, Jó, Példás")]
SzorgalomErtek = 5
}
}

View file

@ -0,0 +1,58 @@
using System;
using Kreta.Core.Validation.Exceptions;
using Kreta.Core.Validation.Exceptions.Enum;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum
{
public class NaploEnumCo<T> where T : struct, IConvertible
{
public static implicit operator NaploEnumCo<T>(int id) => new NaploEnumCo<T>(id);
public static implicit operator NaploEnumCo<T>(T enumValue) => new NaploEnumCo<T>(Convert.ToInt32(enumValue));
public static bool operator ==(NaploEnumCo<T> lhsWrapperCo, T rhsEnum) => lhsWrapperCo.GetEnum().Equals(rhsEnum);
public static bool operator !=(NaploEnumCo<T> lhsWrapperCo, T rhsEnum) => !lhsWrapperCo.GetEnum().Equals(rhsEnum);
public string EnumTypeNameWPostFix => typeof(T).Name;
public string EnumTypeName => EnumTypeNameWPostFix.Replace("Enum", "").Replace("enum", "");
public bool IsGeneratedEnum => !string.IsNullOrWhiteSpace(Nev);
public T GetEnum()
{
T enumValue;
if (!System.Enum.TryParse<T>(Nev, out enumValue))
{
throw new ValidationException(ValidationErrorType.ResourceNotFound, ErrorResource.NemEngedelyezettVagyNemLetezoEnum);
}
return enumValue;
}
public int Id { get; private set; }
public string Nev { get; private set; }
public NaploEnumCo(int id)
{
Fill(id);
if (!typeof(T).IsEnum)
{
throw new ArgumentException("T must be an enum");
}
}
private void Fill(int id)
{
Id = id;
Nev = System.Enum.GetName(typeof(T), id);
if (!typeof(T).IsEnum)
{
throw new ArgumentException("T must be an enum");
}
}
public NaploEnumCo(int id, string nev)
{
Id = id;
Nev = nev;
}
}
}

View file

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum
{
public class NaploEnumListCo<T> where T : struct, IConvertible
{
private T KretaEnum { get; }
public List<NaploEnumListItemCo> ElemLista { get; } = new List<NaploEnumListItemCo>();
public string EnumTypeNameWPostFix => typeof(T).Name;
public string EnumTypeName => EnumTypeNameWPostFix.Replace("Enum", "").Replace("enum", "");
public NaploEnumListCo()
{
if (!typeof(T).IsEnum)
throw new ArgumentException("T must be an enum");
}
public void Fill(List<KeyValuePair<int, string>> idAndDescriptionList)
{
foreach (var idAndDescription in idAndDescriptionList)
{
ElemLista.Add(new NaploEnumListItemCo(idAndDescription.Key, System.Enum.GetName(typeof(T), idAndDescription.Key), idAndDescription.Value));
}
}
public void Fill(int id, string description)
{
ElemLista.Add(new NaploEnumListItemCo(id, System.Enum.GetName(typeof(T), id), description));
}
}
}

View file

@ -0,0 +1,16 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum
{
public class NaploEnumListItemCo
{
public int Id { get; }
public string Name { get; }
public string Description { get; }
public NaploEnumListItemCo(int Id, string name, string description)
{
this.Id = Id;
this.Name = name;
this.Description = description;
}
}
}

View file

@ -0,0 +1,12 @@
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums.ManualEnums.WebApi.Naplo;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Enum
{
public class EnumRequestCo
{
public string Hash { get; set; }
public NaploEnumCo<EngedelyezettEnumok> EngedelyezettEnum { get; set; }
}
}

View file

@ -0,0 +1,14 @@
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes
{
public class FelmentesGetRequestCo
{
public IEnumerable<int> TanuloIds { get; set; }
public int FelhasznaloId { get; set; }
public int IntezmenyId { get; set; }
public string IntezmenyAzonosito { get; set; }
public int TanevId { get; set; }
public int TantargyId { get; set; }
}
}

View file

@ -0,0 +1,25 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes
{
using System;
public class FelmentesGetResponseCo
{
public int Id { get; set; }
public bool IsErtekelesAlolFelmentett { get; set; }
public bool IsOralatogatasAlolFelmentett { get; set; }
public bool IsSzovegesenErtekelheto { get; set; }
public string FelmentesOkSzovege { get; set; }
public DateTime? KezdetDatuma { get; set; }
public int TantargyId { get; set; }
public string TantargyNev { get; set; }
public DateTime? VegDatuma { get; set; }
}
}

View file

@ -0,0 +1,8 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.OpenBoard
{
public class FeltolthetoFajlokSzamaRequestCo
{
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
}
}

View file

@ -0,0 +1,10 @@
using Kreta.Core.Validation.Exceptions;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.OpenBoard
{
public class FeltolthetoFajlokSzamaResponseCo
{
public int FeltolthetoFajlokSzama { get; set; }
public ValidationException Exception { get; set; }
}
}

View file

@ -0,0 +1,11 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common
{
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
public interface IJavasoltJelenletSzuroGetResponseCo
{
string Megjegyzes { get; set; }
JavasoltJelenletTemplateType Tipus { get; set; }
}
}

View file

@ -0,0 +1,10 @@
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common
{
public interface IJavasoltJelenletTanuloGetResponseCo
{
int TanuloId { get; set; }
List<IJavasoltJelenletSzuroGetResponseCo> JavasoltJelenletTemplateTipusSzuroLista { get; set; }
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet
{
public class JavasoltJelenletGetRequestCo
{
public JavasoltJelenletKeyGetRequestCo[] Key { get; set; }
}
}

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet
{
public class JavasoltJelenletGetResponseCo
{
public int TantargyId { get; set; }
public int OsztalyCsoportId { get; set; }
public DateTime OraKezdetDatuma { get; set; }
public List<JavasoltJelenletTanuloGetResponseCo> TanuloLista { get; set; }
}
}

View file

@ -0,0 +1,15 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet
{
using System;
public class JavasoltJelenletKeyGetRequestCo
{
public DateTime OraKezdetDatuma { get; set; }
public DateTime OraVegDatuma { get; set; }
public int OsztalyCsoportId { get; set; }
public int TantargyId { get; set; }
}
}

View file

@ -0,0 +1,22 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet
{
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
public class JavasoltJelenletSzuroGetResponseCo : IJavasoltJelenletSzuroGetResponseCo
{
public JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType tipus)
{
this.Megjegyzes = Constant.GetMegjegyzesByJavasoltJelenletTemplateType(tipus);
this.Tipus = tipus;
}
private JavasoltJelenletSzuroGetResponseCo()
{
}
public string Megjegyzes { get; set; }
public JavasoltJelenletTemplateType Tipus { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.EgyediOra.JavasoltJelenlet
{
public class JavasoltJelenletTanuloGetResponseCo : IJavasoltJelenletTanuloGetResponseCo
{
public int TanuloId { get; set; }
public List<IJavasoltJelenletSzuroGetResponseCo> JavasoltJelenletTemplateTipusSzuroLista { get; set; }
}
}

View file

@ -0,0 +1,10 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.JavasoltJelenletTemplate
{
using Kreta.Enums.ManualEnums;
public class JavasoltJelenletTemplateGetRequestCo
{
public string Hash { get; set; }
public TanoraAllapotaEnum OraAllapot { get; set; }
}
}

View file

@ -0,0 +1,12 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.JavasoltJelenletTemplate
{
public class JavasoltJelenletTemplateGetResponseCo
{
public int Prioritas { get; set; }
public JavasoltJelenletTemplateType Tipus { get; set; }
public List<JavasoltJelenletTemplateItemGetResponseCo> SzuroElemLista { get; set; }
}
}

View file

@ -0,0 +1,23 @@
using System;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.JavasoltJelenletTemplate
{
public class JavasoltJelenletTemplateItemGetResponseCo : IEquatable<JavasoltJelenletTemplateItemGetResponseCo>
{
public JavasoltJelenletTemplateItemGetResponseCo(bool isDefault, bool isEnabled, MulasztasTipusEnum mulasztasTipusAdatszotar)
{
IsDefault = isDefault;
IsEnabled = isEnabled;
MulasztasTipusAdatszotar = mulasztasTipusAdatszotar;
}
public bool IsDefault { get; set; }
public bool IsEnabled { get; set; }
public MulasztasTipusEnum MulasztasTipusAdatszotar { get; set; }
public bool Equals(JavasoltJelenletTemplateItemGetResponseCo other) => MulasztasTipusAdatszotar == other.MulasztasTipusAdatszotar;
public override int GetHashCode() => MulasztasTipusAdatszotar.GetHashCode();
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet
{
public class JavasoltJelenletGetRequestCo
{
public JavasoltJelenletKeyGetRequestCo[] Key { get; set; }
}
}

View file

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet
{
public class JavasoltJelenletGetResponseCo
{
public int OrarendiOraId { get; set; }
public DateTime OraKezdetDatuma { get; set; }
public List<JavasoltJelenletTanuloGetResponseCo> TanuloLista { get; set; }
}
}

View file

@ -0,0 +1,12 @@
using System;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet
{
public class JavasoltJelenletKeyGetRequestCo
{
public int OrarendiOraId { get; set; }
public DateTime OraKezdetDatuma { get; set; }
public DateTime OraVegDatuma { get; set; }
public bool IsHelyettesitesKeresoAltalTalaltOra { get; set; }
}
}

View file

@ -0,0 +1,22 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet
{
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
public class JavasoltJelenletSzuroGetResponseCo : IJavasoltJelenletSzuroGetResponseCo
{
public JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType tipus)
{
this.Megjegyzes = Constant.GetMegjegyzesByJavasoltJelenletTemplateType(tipus);
this.Tipus = tipus;
}
private JavasoltJelenletSzuroGetResponseCo()
{
}
public string Megjegyzes { get; set; }
public JavasoltJelenletTemplateType Tipus { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.OrarendiOra.JavasoltJelenlet
{
public class JavasoltJelenletTanuloGetResponseCo : IJavasoltJelenletTanuloGetResponseCo
{
public int TanuloId { get; set; }
public List<IJavasoltJelenletSzuroGetResponseCo> JavasoltJelenletTemplateTipusSzuroLista { get; set; }
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet
{
public class JavasoltJelenletGetRequestCo
{
public JavasoltJelenletKeyGetRequestCo[] Key { get; set; }
}
}

View file

@ -0,0 +1,10 @@
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet
{
public class JavasoltJelenletGetResponseCo
{
public int TanitasiOraId { get; set; }
public List<JavasoltJelenletTanuloGetResponseCo> TanuloLista { get; set; }
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet
{
public class JavasoltJelenletKeyGetRequestCo
{
public int TanitasiOraId { get; set; }
}
}

View file

@ -0,0 +1,22 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet
{
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
public class JavasoltJelenletSzuroGetResponseCo : IJavasoltJelenletSzuroGetResponseCo
{
public JavasoltJelenletSzuroGetResponseCo(JavasoltJelenletTemplateType tipus)
{
this.Megjegyzes = Constant.GetMegjegyzesByJavasoltJelenletTemplateType(tipus);
this.Tipus = tipus;
}
private JavasoltJelenletSzuroGetResponseCo()
{
}
public string Megjegyzes { get; set; }
public JavasoltJelenletTemplateType Tipus { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.TanitasiOra.JavasoltJelenlet
{
public class JavasoltJelenletTanuloGetResponseCo : IJavasoltJelenletTanuloGetResponseCo
{
public int TanuloId { get; set; }
public List<IJavasoltJelenletSzuroGetResponseCo> JavasoltJelenletTemplateTipusSzuroLista { get; set; }
}
}

View file

@ -0,0 +1,10 @@
using System;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Orarend
{
public class OraGetRequestCo
{
public string Hash { get; set; }
public DateTime Datum { get; set; }
}
}

View file

@ -0,0 +1,30 @@
using System;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums.ManualEnums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Orarend
{
public class OraGetResponseCo
{
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
public NaploEnumCo<TanoraAllapotaEnum> Allapot { get; set; }
public DateTime Kezdete { get; set; }
public DateTime Vege { get; set; }
public int? Oraszam { get; set; }
public int? EvesOraszam { get; set; }
public bool IsElmaradt { get; set; }
public string Tema { get; set; }
public int TantargyId { get; set; }
public string TantargyNev { get; set; }
public string TantargyKategoria { get; set; }
public int OsztalyCsoportId { get; set; }
public string OsztalyCsoportNev { get; set; }
public string TeremNev { get; set; }
public string HazifeladatSzovege { get; set; }
public int? HazifeladatId { get; set; }
public DateTime? HazifeladatHatarido { get; set; }
public TanarSimplifiedGetResponseCo OraTulajdonosTanar { get; set; }
public int? HelyettesitoId { get; set; }
}
}

View file

@ -0,0 +1,9 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Orarend
{
public class TanarSimplifiedGetResponseCo
{
public int Id { get; set; }
public string Nev { get; set; }
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanar
{
public class IskolaorRequestCo
{
public string Hash { get; set; }
}
}

View file

@ -0,0 +1,15 @@

namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanar
{
public class IskolaorResponseCo
{
public int Id { get; set; }
public string Nev { get; set; }
public int FeladatEllatasiHelyId { get; set; }
public string FeladatEllatasiHely { get; set; }
public string EmailCim { get; set; }
public string Telefonszam { get; set; }
public string IdpEgyediAzonosito { get; set; }
public string IntezmenyAzonosito { get; set; }
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanar
{
public class ProfilRequestCo
{
public string Hash { get; set; }
}
}

View file

@ -0,0 +1,14 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanar
{
public class ProfilResponseCo
{
public int Id { get; set; }
public string Nev { get; set; }
public string Kep { get; set; }
public int FeladatEllatasiHelyId { get; set; }
public string FeladatEllatasiHely { get; set; }
public string PublikusEmailCim { get; set; }
public string MunkahelyiEmailCim { get; set; }
public string PublikusTelefonszam { get; set; }
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanmenet
{
public class TanmenetGetRequestCo
{
public TanmenetKeyGetRequestCo[] Key { get; set; }
}
}

View file

@ -0,0 +1,12 @@
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanmenet
{
public class TanmenetGetResponseCo
{
public int OsztalyCsoportId { get; set; }
public int TantargyId { get; set; }
public int FeltoltoTanarId { get; set; }
public List<TanmenetItemGetResponseCo> Items { get; set; }
}
}

View file

@ -0,0 +1,12 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanmenet
{
public class TanmenetItemGetResponseCo
{
public int Id { get; set; }
public string Megjegyzes { get; set; }
public string Nev { get; set; }
public string RovidNev { get; set; }
public string Tema { get; set; }
public int EvesOraszam { get; set; }
}
}

View file

@ -0,0 +1,9 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanmenet
{
public class TanmenetKeyGetRequestCo
{
public int OsztalyCsoportId { get; set; }
public int TantargyId { get; set; }
public int FeltoltoTanarId { get; set; }
}
}

View file

@ -0,0 +1,11 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class ErtekelesFajtaCo
{
public int? Osztalyzat { get; set; }
public string Szoveg { get; set; }
public int? Szazalek { get; set; }
}
}

View file

@ -0,0 +1,9 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class ErtekelesGetRequestCo
{
public int TanuloId { get; set; }
public int TantargyId { get; set; }
}
}

View file

@ -0,0 +1,23 @@
using System;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class ErtekelesGetResponseCo
{
public int Id { get; set; }
public ErtekelesFajtaCo Ertekeles { get; set; }
public DateTime Datum { get; set; }
public NaploEnumCo<ErtekelesTipusEnum> Tipus { get; set; }
public NaploEnumCo<ErtekelesModEnum> Mod { get; set; }
public int Suly { get; set; }
public string Tema { get; set; }
}
}

View file

@ -0,0 +1,125 @@
using System;
using Kreta.Core.CustomAttributes;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class ErtekelesResponseDao
{
[ColumnName("TipusId")]
public int TipusId { get; set; }
[ColumnName("TipusId_DNAME")]
public string TipusNeve { get; set; }
[ColumnName("Datum")]
public DateTime Datum { get; set; }
[ColumnName("ID")]
public int Id { get; set; }
[ColumnName("ErtekeloId")]
public int ErtekeloId { get; set; }
[ColumnName("ErtekeloNyomtatasiNev")]
public string ErtekeloNyomtatasiNev { get; set; }
[ColumnName("IsMagatartasSzorgalom")]
public bool IsMagatartasSzorgalom { get; set; }
[ColumnName("RogzitesDatum")]
public DateTime RogzitesDatum { get; set; }
[ColumnName("OsztalyCsoportId")]
public int OsztalyCsoportId { get; set; }
[ColumnName("ErtekelesModId")]
public int? ErtekelesModId { get; set; }
[ColumnName("ErtekelesModId_DNAME")]
public string ErtekelesModNeve { get; set; }
[ColumnName("ErtekelesTema")]
public string ErtekelesTema { get; set; }
[ColumnName("TantargyId")]
public int? TantargyId { get; set; }
[ColumnName("TantargyNev")]
public string TantargyNev { get; set; }
[ColumnName("TantargyKategoriaId")]
public int? TantargyKategoriaId { get; set; }
[ColumnName("TantargyKategoriaId_DNAME")]
public string TantargyKategoriaNeve { get; set; }
[ColumnName("IsFotargy")]
public bool? IsFotargy { get; set; }
[ColumnName("SorSzam")]
public int? SorSzam { get; set; }
[ColumnName("FotargyId")]
public int? FotargyId { get; set; }
[ColumnName("FotargyNev")]
public string FotargyNev { get; set; }
[ColumnName("FotargyTantargyKategoriaId")]
public int? FotargyTantargyKategoriaId { get; set; }
[ColumnName("ErtekelesOsztalyzatId_DNAME")]
public string ErtekelesOsztalyzatNeve { get; set; }
[ColumnName("ErtekelesSzoveg")]
public string ErtekelesSzoveg { get; set; }
[ColumnName("SzovegesErtekelesRovidNev")]
public string SzovegesErtekelesRovidNev { get; set; }
[ColumnName("ErtekelesSzovegFormazott")]
public string ErtekelesSzovegFormazott { get; set; }
[ColumnName("ErtekelesSzazalek")]
public int? ErtekelesSzazalekErteke { get; set; }
[ColumnName("ErtekelesOsztalyzatId")]
public int? ErtekelesOsztalyzatId { get; set; }
[ColumnName("ErtekelesSuly")]
public int ErtekelesSuly { get; set; }
[ColumnName("MagatartasOsztalyzatId_DNAME")]
public string MagatartasOsztalyzatSzovegesen { get; set; }
[ColumnName("MagatartasSzoveg")]
public string MagatartasSzoveg { get; set; }
[ColumnName("MagatartasSzovegFormazott")]
public string MagatartasSzovegFormazott { get; set; }
[ColumnName("MagatartasErtekId_DNAME")]
public string MagatartasErtekSzovegesen { get; set; }
[ColumnName("MagatartasOsztalyzatId")]
public int? MagatartasOsztalyzatId { get; set; }
[ColumnName("SzorgalomOsztalyzatId_DNAME")]
public string SzorgalomOsztalyzatSzovegesen { get; set; }
[ColumnName("SzorgalomSzoveg")]
public string SzorgalomSzoveg { get; set; }
[ColumnName("SzorgalomSzovegFormazott")]
public string SzorgalomSzovegFormazott { get; set; }
[ColumnName("SzorgalomErtekId_DNAME")]
public string SzorgalomErtekSzoveges { get; set; }
[ColumnName("SzorgalomOsztalyzatId")]
public int? SzorgalomOsztalyzatId { get; set; }
[ColumnName("TanuloId")]
public int TanuloId { get; set; }
}
}

View file

@ -0,0 +1,8 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class FeljegyzesRequestCo
{
public string Hash { get; set; }
public int TanoraId { get; set; }
}
}

View file

@ -0,0 +1,18 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class FeljegyzesResponseCo
{
public List<FeljegyzesInfoResponseCo> FeljegyzesLista { get; set; }
public int TanuloId { get; set; }
}
public class FeljegyzesInfoResponseCo
{
public int Id { get; set; }
public NaploEnumCo<EsemenyTipusEnum> Tipus { get; set; }
}
}

View file

@ -0,0 +1,8 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class MulasztasRequestCo
{
public string Hash { get; set; }
public int TanoraId { get; set; }
}
}

View file

@ -0,0 +1,13 @@
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class MulasztasResponseCo
{
public int Id { get; set; }
public NaploEnumCo<MulasztasTipusEnum> Tipus { get; set; }
public int? Keses { get; set; }
public int TanuloId { get; set; }
}
}

View file

@ -0,0 +1,15 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
using System;
public class OsztalyTanuloiRequestCo
{
private DateTime? oraShortDatuma;
public string Hash { get; set; }
public DateTime? OraShortDatuma { get => this.oraShortDatuma; set => this.oraShortDatuma = value?.Date; }
public int OsztalyCsoportId { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class OsztalyTanuloiResponseCo
{
public int Id { get; set; }
public string Nev { get; set; }
public List<TanuloResponseCo> TanuloLista { get; set; } = new List<TanuloResponseCo>();
}
}

View file

@ -0,0 +1,9 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class TanugyiAdatokGetResponseCo
{
public bool IsJogviszonySzunetelteto { get; set; }
public bool IsSzakmaiGyakorlatonLevo { get; set; }
}
}

View file

@ -0,0 +1,21 @@

namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class TanuloMentessegResponseCo
{
public int TantargyId { get; set; }
public bool IsErtkelesMentesseg { get; set; }
public bool IsSzovegesenErtekelheto { get; set; }
public bool IsTanoraLatogatasMentesseg { get; set; }
public TanuloMentessegResponseCo() { }
public TanuloMentessegResponseCo(int? tantargyId, bool? isErtekelesMentesseg, bool? isSzovegesenErtekelheto, bool? isOraMentesites)
{
TantargyId = tantargyId.Value;
IsErtkelesMentesseg = isErtekelesMentesseg ?? false;
IsSzovegesenErtekelheto = isSzovegesenErtekelheto ?? false;
IsTanoraLatogatasMentesseg = isOraMentesites ?? false;
}
}
}

View file

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class TanuloResponseCo
{
public int Id { get; set; }
public string Nev { get; set; }
public string AnyjaNev { get; set; }
public DateTime Szuletes { get; set; }
public bool IsMaganTanulo { get; set; }
public DateTime? MaganTanulosagKezdetDatuma { get; set; }
public DateTime? MaganTanulosagVegeDatuma { get; set; }
public TanugyiAdatokGetResponseCo TanugyiAdatok { get; set; }
public List<TanuloMentessegResponseCo> Felmentesek { get; set; } = new List<TanuloMentessegResponseCo>();
public TanuloResponseCo() { }
public TanuloResponseCo(TanuloResponseDao dao)
{
Id = dao.TanuloId;
Nev = dao.NyomtatasiNev;
AnyjaNev = dao.AnyjaNeve;
Szuletes = dao.SzuletesiDatum;
IsMaganTanulo = dao.IsMaganTanulo ?? false;
MaganTanulosagKezdetDatuma = dao.MaganTanulosagKezdetDatuma;
MaganTanulosagVegeDatuma = dao.MaganTanulosagVegeDatuma;
TanugyiAdatok = new TanugyiAdatokGetResponseCo
{
IsJogviszonySzunetelteto = dao.IsJogviszonySzunetelteto ?? false,
IsSzakmaiGyakorlatonLevo = dao.IsSzakmaiGyakorlatonLevo ?? false
};
}
}
}

View file

@ -0,0 +1,50 @@
using System;
using Kreta.Core.CustomAttributes;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Tanulo
{
public class TanuloResponseDao
{
[ColumnName("TanuloId")]
public int TanuloId { get; set; }
[ColumnName("TanuloNyomtatasiNev")]
public string NyomtatasiNev { get; set; }
[ColumnName("TanuloAnyjaNev")]
public string AnyjaNeve { get; set; }
[ColumnName("TanuloSzuletesiDatum")]
public DateTime SzuletesiDatum { get; set; }
[ColumnName("OsztalyCsoportNev")]
public string OsztalyCsoportNev { get; set; }
[ColumnName("IsMaganTanulo")]
public bool? IsMaganTanulo { get; set; }
[ColumnName("MaganTanulosagKezdetDatuma")]
public DateTime? MaganTanulosagKezdetDatuma { get; set; }
[ColumnName("MaganTanulosagVegeDatuma")]
public DateTime? MaganTanulosagVegeDatuma { get; set; }
[ColumnName("IsJogviszonySzunetelteto")]
public bool? IsJogviszonySzunetelteto { get; set; }
[ColumnName("IsSzakmaiGyakorlatonLevo")]
public bool? IsSzakmaiGyakorlatonLevo { get; set; }
[ColumnName("TantargyId")]
public int? TantargyId { get; set; }
[ColumnName("IsErtekelesMentesseg")]
public bool? IsErtekelesMentesseg { get; set; }
[ColumnName("IsSzovegesenErtekelheto")]
public bool? IsSzovegesenErtekelheto { get; set; }
[ColumnName("IsOraMentesites")]
public bool? IsOraMentesites { get; set; }
}
}

View file

@ -0,0 +1,12 @@
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles
{
public class ErtekelesRequestCo
{
public NaploEnumCo<OsztalyzatTipusEnum> OsztalyzatTipus { get; set; }
public int? Szazalek { get; set; }
public string Szoveg { get; set; }
}
}

View file

@ -0,0 +1,10 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles
{
using Kreta.Core.Validation.Exceptions;
public class ErtekelesResponseCo
{
public ValidationException Exception { get; set; }
}
}

View file

@ -0,0 +1,24 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles
{
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums;
public class OsztalyCsoportErtekelesRequestCo
{
public DateTime Datum { get; set; }
public NaploEnumCo<ErtekelesModEnum> Mod { get; set; }
public NaploEnumCo<ErtekelesTipusEnum> Tipus { get; set; }
public string Tema { get; set; }
public int OsztalyCsoportId { get; set; }
public int TantargyId { get; set; }
public List<TanuloForOsztalyCsoportErtekelesRequestCo> TanuloLista { get; set; }
}
}

View file

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles
{
public class OsztalyCsoportErtekelesResponseCo
{
public List<TanuloForOsztalyCsoportErtekelesResponseCo> TanuloLista { get; set; } = new List<TanuloForOsztalyCsoportErtekelesResponseCo>();
}
}

View file

@ -0,0 +1,11 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles
{
public class TanuloForOsztalyCsoportErtekelesRequestCo
{
public ErtekelesRequestCo Ertekeles { get; set; }
public int TanuloId { get; set; }
public int MobilId { get; set; }
}
}

View file

@ -0,0 +1,8 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles
{
public class TanuloForOsztalyCsoportErtekelesResponseCo
{
public int Id { get; set; }
public int ErtekelesId { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Naplozas
{
public class MulasztasForOraNaplozasRequestCo
{
public NaploEnumCo<MulasztasTipusEnum> Tipus { get; set; }
public int? Keses { get; set; }
}
}

View file

@ -0,0 +1,126 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Kreta.BusinessLogic.Logic.Naplozas;
using Kreta.Enums;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Naplozas
{
public class OraNaplozasRequestCo : IValidatableObject
{
public DateTime Datum { get; set; }
public string Hazifeladat { get; set; }
public DateTime? HazifeladatHatarido { get; set; }
public int? HazifeladatId { get; set; }
public bool IsElmaradt { get; set; }
public int MobilId { get; set; }
public int? OrarendiOraId { get; set; }
public DateTime RogzitesDatum { get; set; }
public int? TanitasiOraId { get; set; }
public List<TanuloForOraNaplozasRequestCo> TanuloLista { get; set; }
public string Tema { get; set; }
public int? CsatolmanyId { get; set; }
public void ConvertTo(NaplozasMobilCo co)
{
co.OraAdat.Datum = Datum;
co.OraAdat.IsElmaradt = IsElmaradt;
co.OraAdat.Tema = Tema;
co.OraAdat.OrarendiOraId = OrarendiOraId;
co.OraAdat.TanitasiOraId = TanitasiOraId;
co.Hazifeladat.Id = HazifeladatId;
co.Hazifeladat.Szoveg = Hazifeladat;
co.Hazifeladat.Hatarido = HazifeladatHatarido;
co.Hazifeladat.CsatolmanyId = CsatolmanyId;
co.OraAdat.RogzitesDatuma = RogzitesDatum;
foreach (var tanulo in TanuloLista)
{
var tanuloMulasztas = new NaplozasMobilCo.MulasztasModel
{
TanuloId = tanulo.Id,
MulasztasTipus = tanulo.Mulasztas.Tipus.Id,
Keses = tanulo.Mulasztas.Keses
};
foreach (var feljegyzesTipus in tanulo.FeljegyzesTipusLista)
{
switch (feljegyzesTipus.Id)
{
case (int)EsemenyTipusEnum.HaziFeladatHiany:
tanuloMulasztas.HazifeladatHiany = true;
break;
case (int)EsemenyTipusEnum.Felszereleshiany:
tanuloMulasztas.FelszerelesHiany = true;
break;
case (int)EsemenyTipusEnum.Dicseret:
tanuloMulasztas.TanoraiDicseret = true;
break;
case (int)EsemenyTipusEnum.SzakmaiMentessegNemHivatalos:
tanuloMulasztas.Felmentes = true;
break;
}
}
co.MulasztasList.Add(tanuloMulasztas);
}
}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (HazifeladatHatarido < Datum.Date.AddDays(1))
{
yield return new ValidationResult(ErrorResource.HazifeladatNemrogzithetoHataridoKorabbiMintAzOraDatuma);
}
if (HazifeladatHatarido < DateTime.Today.AddDays(1))
{
yield return new ValidationResult(ErrorResource.HazifeladatNemrogzithetoHataridoKorabbiMintAHolnapiNap);
}
if (HazifeladatId.HasValue && string.IsNullOrWhiteSpace(Hazifeladat))
{
yield return new ValidationResult(OrarendResource.HazifeladatSzovegKotelezo);
}
var occurrenceNumberByPrimaryKey = new Dictionary<int, int>();
foreach (var tanulo in TanuloLista)
{
if (occurrenceNumberByPrimaryKey.ContainsKey(tanulo.Id))
{
occurrenceNumberByPrimaryKey[tanulo.Id]++;
}
else
{
occurrenceNumberByPrimaryKey.Add(tanulo.Id, 1);
}
//TODO: késés értékének felső határát is validálni (nagyobb átalakítás)
if (tanulo.Mulasztas.Tipus.Id == (int)MulasztasTipusEnum.keses && tanulo.Mulasztas.Keses <= 0)
{
yield return new ValidationResult(string.Format(ErrorResource.AKesesErtekeNemLehet0, tanulo.Mulasztas.Keses));
}
}
foreach (var occurrenceNumberByPrimaryKeyItem in occurrenceNumberByPrimaryKey)
{
if (occurrenceNumberByPrimaryKeyItem.Value > 1)
{
yield return new ValidationResult($"A tanuló többször szerepel: {nameof(TanuloForOraNaplozasRequestCo.Id)}={occurrenceNumberByPrimaryKeyItem.Key}");
}
}
}
}
}

View file

@ -0,0 +1,10 @@
using Kreta.Core.Validation.Exceptions;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Naplozas
{
public class OraNaplozasResponseCo
{
public int MobilId { get; set; }
public ValidationException Exception { get; set; }
}
}

View file

@ -0,0 +1,13 @@
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Enum;
using Kreta.Enums.ManualEnums;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Naplozas
{
public class TanuloForOraNaplozasRequestCo
{
public int Id { get; set; }
public MulasztasForOraNaplozasRequestCo Mulasztas { get; set; }
public List<NaploEnumCo<FeljegyzesTipusEnum>> FeljegyzesTipusLista { get; set; }
}
}

View file

@ -0,0 +1,10 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.OpenBoard
{
public class FeltoltottFajlRequestCo
{
public int? Id { get; set; }
public string ContentAsBase64EncodedString { get; set; }
public int? OrarendiOraId { get; set; }
public int? TanitasiOraId { get; set; }
}
}

View file

@ -0,0 +1,10 @@
using Kreta.Core.Validation.Exceptions;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.OpenBoard
{
public class FeltoltottFajlResponseCo
{
public int FeltolthetoFajlokSzama { get; set; }
public ValidationException Exception { get; set; }
}
}

View file

@ -0,0 +1,56 @@
using System;
using System.Net;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co
{
public sealed class ResponseWrapperCo<T> where T : class, new()
{
public HttpStatusCode StatusCode { get; private set; } = HttpStatusCode.NotFound;
public DateTime UtolsoSzinkronDatumUtc { get; } = DateTime.UtcNow;
public string Hash => string.IsNullOrWhiteSpace(DatabaseHash + SourceHash) ? null : DatabaseHash + "." + SourceHash;
public bool IsHashesOk => IsDatabaseHashOk && IsSourceHashOk;
public bool IsDatabaseHashOk
=> !string.IsNullOrWhiteSpace(RequestHash) && !string.IsNullOrWhiteSpace(DatabaseHash) && RequestHash.StartsWith(DatabaseHash, StringComparison.CurrentCultureIgnoreCase);
public bool IsSourceHashOk
=> !string.IsNullOrWhiteSpace(RequestHash) && !string.IsNullOrWhiteSpace(SourceHash) && RequestHash.EndsWith(SourceHash, StringComparison.CurrentCultureIgnoreCase);
private string RequestHash { get; }
private string DatabaseHash { get; }
private string SourceHash { get; set; }
public T Adatcsomag { get; private set; } = null;
private ResponseWrapperCo() { }
public ResponseWrapperCo(string requestHash, string databaseHash = null)
{
RequestHash = requestHash;
DatabaseHash = databaseHash;
}
/// <param name="isStrictMode">True: Adatcsomag prop is only assigned if all hash are ok.</param>
public void FillData(T adatcsomag, bool isStrictMode = false)
{
StatusCode = HttpStatusCode.OK;
SourceHash = HashLogic.CreateSourceHash(adatcsomag);
if (isStrictMode)
{
Fill(IsHashesOk, adatcsomag);
}
else
{
Fill(IsSourceHashOk, adatcsomag);
}
}
private void Fill(bool isHashOk, T adatcsomag)
{
if (isHashOk)
{
StatusCode = HttpStatusCode.NotModified;
}
else
{
Adatcsomag = adatcsomag;
}
}
}
}

View file

@ -0,0 +1,28 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2
{
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
using Kreta.Resources;
public static class Constant
{
private static readonly Dictionary<JavasoltJelenletTemplateType, string> megjegyzesByJavasoltJelenletTemplateTypeDictionary = new Dictionary<JavasoltJelenletTemplateType, string>
{
{ JavasoltJelenletTemplateType.Igazolas, NaploApiResource.ATanulonakIgazolasLettRogzitve },
{ JavasoltJelenletTemplateType.ElozoOranHianyzott, NaploApiResource.ElozoOranHianyzott },
{ JavasoltJelenletTemplateType.ParhuzamosOranNaplozott, NaploApiResource.ParuzamosOranMarNaploztak },
{ JavasoltJelenletTemplateType.Felmentes, NaploApiResource.ATanulonakFelmenteseVan },
{ JavasoltJelenletTemplateType.SzakmaiGyakorlat, NaploApiResource.SzakmaiGyakorlatonJelenlevo },
{ JavasoltJelenletTemplateType.JogviszonySzuneteltetes, NaploApiResource.JogviszonySzunetelteto },
{ JavasoltJelenletTemplateType.MagantanuloOralatogatasAloliMentesseg, NaploApiResource.Magantanulo }
};
public static string GetMegjegyzesByJavasoltJelenletTemplateType(JavasoltJelenletTemplateType tipus)
{
return megjegyzesByJavasoltJelenletTemplateTypeDictionary.TryGetValue(tipus, out string value) ? value : null;
}
public static readonly int FeltolthetoFajlokMaxSzama = 25;
public static readonly string DateTimeFormat = "yyyyMMdd_HHmm";
}
}

View file

@ -0,0 +1,13 @@
using Newtonsoft.Json;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Converter
{
public static class CustomJsonConverter
{
public static T DeserializeJsonToObject<T>(string json) where T : class, new()
=> !string.IsNullOrWhiteSpace(json) ? JsonConvert.DeserializeObject<T>(json) : null;
public static string SerializeObjectToJson(object myObject)
=> (myObject != null) ? JsonConvert.SerializeObject(myObject) : string.Empty;
}
}

View file

@ -0,0 +1,10 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum
{
public enum FelmentesType
{
None,
OralatogatasAlol,
ErtekelesAlol,
OralatogatasEsErtekelesAlol = OralatogatasAlol | ErtekelesAlol
}
}

View file

@ -0,0 +1,15 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum
{
public enum JavasoltJelenletTemplateType
{
None,
Default,
ElozoOranHianyzott,
Igazolas,
ParhuzamosOranNaplozott,
MagantanuloOralatogatasAloliMentesseg,
Felmentes,
SzakmaiGyakorlat,
JogviszonySzuneteltetes
}
}

View file

@ -0,0 +1,13 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
using System;
using System.Collections.Generic;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual.Interfaces;
public static class EgyediOraLogic
{
public static List<int> ListParhuzamosOranNaplozottMulasztasTanuloId(DateTime oraKezdete, DateTime oraVege, IConnectionType connectionType, IDalHandler h)
=> OraLogic.ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdete, oraVege, -1, connectionType, h);
}
}

View file

@ -0,0 +1,13 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
using System;
public static class FelmentesLogic
{
public static bool CalculateIsNowFelmentettByDatum(DateTime examinedDate, DateTime? felmentesKezdetDatuma, DateTime? felmentesVegDatuma)
=> (!felmentesKezdetDatuma.HasValue && !felmentesVegDatuma.HasValue)
|| (!felmentesKezdetDatuma.HasValue && examinedDate <= felmentesVegDatuma)
|| (!felmentesVegDatuma.HasValue && felmentesKezdetDatuma <= examinedDate)
|| (felmentesKezdetDatuma <= examinedDate && examinedDate <= felmentesVegDatuma);
}
}

View file

@ -0,0 +1,18 @@
using System.Reflection;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Converter;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
public static class HashLogic
{
private static string GetNonce() => Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace(".", "_");
public static string CreateSourceHash<T>(T responseCO) where T : class, new()
=> (responseCO != null) ? CustomJsonConverter.SerializeObjectToJson(responseCO)?.GetHashCode().ToString() + "__" + GetNonce() : null;
//public static string CreateResponseHash<T>(T responseCO, string requestHash) where T : class, IGetResponseCo, new()
// => (responseCO != null && !responseCO.Hash.Equals(requestHash)) ? responseCO.Hash : null;
//public static T CreateResponseData<T>(T responseCO, string requestHash) where T : class, IGetResponseCo, new()
// => (responseCO != null && !responseCO.Hash.Equals(requestHash)) ? responseCO : null;
}
}

View file

@ -0,0 +1,27 @@
using System.Data;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.ConnectionType;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
public static class HelyettesitesLogic
{
public class Tanar
{
public Tanar(int tanarId, int tanevId, int intezmenyId, string intezmenyAzonosito, Enums.OktNevelesiKategoriaEnum? oktatasNevelesKategoriaEnum = null)
{
TanarHelyettesiteseiDt = new HelyettesitesHelper(new MobileConnectionType(tanarId, intezmenyId, intezmenyAzonosito, tanevId)).GetHelyettesitesekListajaGrid(new HelperClasses.HelyettesitesekListajaSearchCO
{
HelyettesitoTanarSearch = tanarId,
FeladatKategoriaId = oktatasNevelesKategoriaEnum.HasValue ? (int)oktatasNevelesKategoriaEnum : (int)default
}).Tables[0];
}
private DataTable TanarHelyettesiteseiDt { get; set; }
public bool IsHelyettesito(int osztalyCsoportId, int tantargyId)
=> TanarHelyettesiteseiDt.Select($"OsztalyCsoportId = {osztalyCsoportId} AND TantargyId = {tantargyId}").Length > 0;
}
}
}

View file

@ -0,0 +1,288 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.Common;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Ora.JavasoltJelenletTemplate;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
using Kreta.Core.Validation.Exceptions;
using Kreta.Core.Validation.Exceptions.Enum;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
/// TODO: Optional refact: lehetne dictionary a template, sokkal optimálisabb lenne (DevKornél)
public class JavasoltJelenletTemplateLogic
{
private static readonly List<JavasoltJelenletTemplateGetResponseCo> OrarendiOraJavasoltJelenlet = new List<JavasoltJelenletTemplateGetResponseCo> {
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.Default,
Prioritas = 1,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.ElozoOranHianyzott,
Prioritas = 2,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.Igazolas,
Prioritas = 3,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.ParhuzamosOranNaplozott,
Prioritas = 4,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.MagantanuloOralatogatasAloliMentesseg,
Prioritas = 5,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.Felmentes,
Prioritas = 6,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.SzakmaiGyakorlat,
Prioritas = 7,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.JogviszonySzuneteltetes,
Prioritas = 8,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(true,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.keses)
}
}
};
private static readonly List<JavasoltJelenletTemplateGetResponseCo> TanitasiOraJavasoltJelenlet = new List<JavasoltJelenletTemplateGetResponseCo> {
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.Default,
Prioritas = 1,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true, MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.ElozoOranHianyzott,
Prioritas = 2,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.Igazolas,
Prioritas = 3,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false, true, MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false, true, MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false, true, MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false, true, MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.ParhuzamosOranNaplozott,
Prioritas = 4,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.MagantanuloOralatogatasAloliMentesseg,
Prioritas = 5,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.Felmentes,
Prioritas = 6,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo (false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo (false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo (false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo (false,false,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.SzakmaiGyakorlat,
Prioritas = 7,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.keses)
}
},
new JavasoltJelenletTemplateGetResponseCo{
Tipus = JavasoltJelenletTemplateType.JogviszonySzuneteltetes,
Prioritas = 8,
SzuroElemLista = new List<JavasoltJelenletTemplateItemGetResponseCo>{
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.ures),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.jelenlet),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.hianyzas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.potlas),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.szabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.tappenz),
new JavasoltJelenletTemplateItemGetResponseCo(false,true,MulasztasTipusEnum.betegszabadsag),
new JavasoltJelenletTemplateItemGetResponseCo(false,false,MulasztasTipusEnum.keses)
}
}
};
public JavasoltJelenletTemplateLogic(TanoraAllapotaEnum oraAllapota)
{
OraAllapota = oraAllapota;
}
private JavasoltJelenletTemplateLogic()
{
}
public TanoraAllapotaEnum OraAllapota { get; }
/// TODO: vizsgálatot meg kell csinálni, ha magasabb prior állítana default értéket, de már le van tiltva (vagy egy új ajánlást) (DevKornél)
public JavasoltJelenletTemplateGetResponseCo GetCalculatedJelenletJavaslatConsideringSzuro(IEnumerable<IJavasoltJelenletSzuroGetResponseCo> javasoltJelenletTemplateTipusSzuroLista)
{
if (!javasoltJelenletTemplateTipusSzuroLista.Any(filter => filter.Tipus == JavasoltJelenletTemplateType.Default))
{
throw new ValidationException(ValidationErrorType.Undefined, $"{nameof(JavasoltJelenletTemplateType.Default)} template filter does not exist!");
}
var orderedTeljesultSzuroTemplateLista = GetTemplate().FindAll(template => javasoltJelenletTemplateTipusSzuroLista.Any(filter => filter.Tipus == template.Tipus)).OrderByDescending(x => x.Prioritas).ToList();
if (!orderedTeljesultSzuroTemplateLista.Exists(template => template.Tipus == JavasoltJelenletTemplateType.Default))
{
throw new ValidationException(ValidationErrorType.Undefined, $"{nameof(JavasoltJelenletTemplateType.Default)} template does not exist!");
}
return orderedTeljesultSzuroTemplateLista[0];
}
public List<JavasoltJelenletTemplateGetResponseCo> GetTemplate()
{
switch (this.OraAllapota)
{
case TanoraAllapotaEnum.Nem_naplozott:
return OrarendiOraJavasoltJelenlet;
case TanoraAllapotaEnum.Naplozott:
return TanitasiOraJavasoltJelenlet;
default:
throw new ValidationException(ValidationErrorType.Undefined, $"Template does not exist!");
}
}
}
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual.Interfaces;
using Kreta.DataAccessManual.Util;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
public static class OraLogic
{
public static List<int> ListParhuzamosOranNaplozottMulasztasTanuloId(DateTime oraKezdete, DateTime oraVege, int tanoraId, IConnectionType connectionType, IDalHandler h)
=> new MulasztasHelper(new DalHandlerConnectionType(connectionType, h)).ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdete, oraVege, tanoraId);
public static List<int> ListElozoOranHianyzottTanuloId(DateTime oraKezdetDatuma, int osztalyCsoportId, int userId, int intezmenyId, string intezmenyAzonosito, int tanevId)
=> new TanuloHelper(new MobileConnectionType(userId, intezmenyId, intezmenyAzonosito, tanevId)).GetElozoOranHianyzottTanulok(oraKezdetDatuma, osztalyCsoportId);
}
}

View file

@ -0,0 +1,13 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
using System;
using System.Collections.Generic;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual.Interfaces;
public static class OrarendiOraLogic
{
public static List<int> ListParhuzamosOranNaplozottMulasztasTanuloId(DateTime oraKezdete, DateTime oraVege, IConnectionType connectionType, IDalHandler h)
=> OraLogic.ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdete, oraVege, -1, connectionType, h);
}
}

View file

@ -0,0 +1,24 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Helpers.SystemSettings;
using Kreta.Core.ConnectionType;
using Kreta.Enums;
using Kreta.Enums.ManualEnums.SystemSettings;
public static class SystemSettingsLogic
{
public static bool IsMagantanuloOralatogatasAloliMentessegEnabled(int tantargyId, string intezmenyAzonosito, int tanevId, int userId, int intezmenyId)
{
var magantanuloMulasztasSystemSetting = (SystemSettingMagantanuloMulasztas)new SystemSettingsHelper(new MobileConnectionType(userId, intezmenyId, intezmenyAzonosito, tanevId)).GetSystemSettingValue<int>(RendszerBeallitasTipusEnum.Magantanulo_oralatogatas_aloli_mentessegenek_kezelese);
var IsNemKellMegjelennie = magantanuloMulasztasSystemSetting == SystemSettingMagantanuloMulasztas.NemKellMegjelennie;
var IsNemGyakorlatiTantargyonResztKellVennie = magantanuloMulasztasSystemSetting == SystemSettingMagantanuloMulasztas.CsakGyakorlaton && !new TantargyHelper(new MobileConnectionType(userId, intezmenyId, intezmenyAzonosito, tanevId)).IsGyakorlatiTantargy(tantargyId);
return IsNemKellMegjelennie || IsNemGyakorlatiTantargyonResztKellVennie;
}
public static bool IsMulasztasokParhuzamosOraKezelesUtkozesVizsgalatEnabled(string intezmenyAzonosito, int tanevId, int userId, int intezmenyId)
=> new SystemSettingsHelper(new MobileConnectionType(userId, intezmenyId, intezmenyAzonosito, tanevId)).GetSystemSettingValue<bool>(RendszerBeallitasTipusEnum.A_foglalkozasok_mulasztasi_adatai_megadasanal_a_parhuzamos_orakkal_valo_utkozes_vizsgalata);
}
}

View file

@ -0,0 +1,13 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
using System;
using System.Collections.Generic;
using Kreta.Core.ConnectionType;
using Kreta.DataAccessManual.Interfaces;
public static class TanitasiOraLogic
{
public static List<int> ListParhuzamosOranNaplozottMulasztasTanuloId(DateTime oraKezdete, DateTime oraVege, int tanoraId, IConnectionType connectionType, IDalHandler h)
=> OraLogic.ListParhuzamosOranNaplozottMulasztasTanuloId(oraKezdete, oraVege, tanoraId, connectionType, h);
}
}

View file

@ -0,0 +1,39 @@
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Logic
{
using System;
using System.Collections.Generic;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Get.Felmentes;
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Enum;
using Kreta.Core.Exceptions;
public static class TanuloLogic
{
public static bool CalculateIsNowFelmentett(List<FelmentesGetResponseCo> felmentesek, DateTime examinedDate, int intezmenyId, string intezmenyAzonosito, int tanevId, FelmentesType felmentesTypeFilter = FelmentesType.None)
{
foreach (var felmentes in felmentesek)
{
if (FelmentesLogic.CalculateIsNowFelmentettByDatum(examinedDate, felmentes.KezdetDatuma, felmentes.VegDatuma))
{
switch (felmentesTypeFilter)
{
case FelmentesType.None:
return felmentes.IsOralatogatasAlolFelmentett || felmentes.IsErtekelesAlolFelmentett;
case FelmentesType.OralatogatasAlol:
return felmentes.IsOralatogatasAlolFelmentett;
case FelmentesType.ErtekelesAlol:
return felmentes.IsErtekelesAlolFelmentett;
case FelmentesType.OralatogatasEsErtekelesAlol:
return felmentes.IsOralatogatasAlolFelmentett && felmentes.IsErtekelesAlolFelmentett;
default:
throw new BlException($"{nameof(FelmentesType)} does not exist!");
}
}
}
return false;
}
public static bool CalculateIsNowMagantanulo(bool isMagantanulo, DateTime? maganTanulosagKezdetDatuma, DateTime? maganTanulosagVegeDatuma, DateTime oraDatuma)
=> isMagantanulo && (!maganTanulosagKezdetDatuma.HasValue || maganTanulosagKezdetDatuma.Value <= oraDatuma) && (!maganTanulosagVegeDatuma.HasValue || maganTanulosagVegeDatuma.Value >= oraDatuma);
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,58 @@
using System;
using Kreta.Core.Validation.Exceptions;
using Kreta.Core.Validation.Exceptions.Enum;
using Kreta.Resources;
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V3.Co.Enum
{
public class NaploEnumCo<T> where T : struct, IConvertible
{
public static implicit operator NaploEnumCo<T>(int id) => new NaploEnumCo<T>(id);
public static implicit operator NaploEnumCo<T>(T enumValue) => new NaploEnumCo<T>(Convert.ToInt32(enumValue));
public static bool operator ==(NaploEnumCo<T> lhsWrapperCo, T rhsEnum) => lhsWrapperCo.GetEnum().Equals(rhsEnum);
public static bool operator !=(NaploEnumCo<T> lhsWrapperCo, T rhsEnum) => !lhsWrapperCo.GetEnum().Equals(rhsEnum);
public string EnumTypeNameWPostFix => typeof(T).Name;
public string EnumTypeName => EnumTypeNameWPostFix.Replace("Enum", "").Replace("enum", "");
public bool IsGeneratedEnum => !string.IsNullOrWhiteSpace(Nev);
public T GetEnum()
{
T enumValue;
if (!System.Enum.TryParse<T>(Nev, out enumValue))
{
throw new ValidationException(ValidationErrorType.ResourceNotFound, ErrorResource.NemEngedelyezettVagyNemLetezoEnum);
}
return enumValue;
}
public int Id { get; private set; }
public string Nev { get; private set; }
public NaploEnumCo(int id)
{
Fill(id);
if (!typeof(T).IsEnum)
{
throw new ArgumentException("T must be an enum");
}
}
private void Fill(int id)
{
Id = id;
Nev = System.Enum.GetName(typeof(T), id);
if (!typeof(T).IsEnum)
{
throw new ArgumentException("T must be an enum");
}
}
public NaploEnumCo(int id, string nev)
{
Id = id;
Nev = nev;
}
}
}

Some files were not shown because too many files have changed in this diff Show more