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