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,23 @@
using System;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class FelmentesResponse
{
public int TanuloId { get; set; }
public string TantargyNev { get; set; }
public bool ErtekelesAloliFelmentes { get; set; }
public bool TanoraLatogatasaAloliFelmentes { get; set; }
public bool SzovegesenErtekelheto { get; set; }
public string FelmentesOka { get; set; }
public DateTime? FelmentesKezdete { get; set; }
public DateTime? FelmentesVege { get; set; }
}
}

View file

@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data.SqlTypes;
using System.Linq;
using Kreta.Naplo.Domain.V3.Interfaces;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class HetirendListRequest : IValidatableObject, IModelValidacio<HetirendListRequest>
{
public Dictionary<Predicate<HetirendListRequest>, string> ModelValidaciok => new Dictionary<Predicate<HetirendListRequest>, string>
{
{
x => x.OrarendElemVegNapDatuma < x.OrarendElemKezdoNapDatuma, $"A(z) {nameof(OrarendElemKezdoNapDatuma)} nagyobb, mint a(z) {nameof(OrarendElemVegNapDatuma)} érték!"
},
{ x => (x.OrarendElemVegNapDatuma - x.OrarendElemKezdoNapDatuma).Days > 21,
$"A {nameof(OrarendElemKezdoNapDatuma)} és a {nameof(OrarendElemVegNapDatuma)} paraméterek meg vannak adva, de maximum 3 hetes intervallum kérdezhető le!"
},
{
x => x.OrarendElemKezdoNapDatuma < (DateTime)SqlDateTime.MinValue || x.OrarendElemKezdoNapDatuma > (DateTime)SqlDateTime.MaxValue, $"A {nameof(OrarendElemKezdoNapDatuma)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!"
},
{
x => x.OrarendElemVegNapDatuma < (DateTime)SqlDateTime.MinValue || x.OrarendElemVegNapDatuma > (DateTime)SqlDateTime.MaxValue, $"A {nameof(OrarendElemVegNapDatuma)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!"
}
};
public DateTime OrarendElemKezdoNapDatuma { get; set; }
public DateTime OrarendElemVegNapDatuma { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
}
}

View file

@ -0,0 +1,17 @@
using System;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class HetirendListResponse
{
public int Id { get; set; }
public DateTime KezdoNapDatuma { get; set; }
public DateTime VegNapDatuma { get; set; }
public int HetSorszama { get; set; }
public string Hetirend { get; set; }
}
}

View file

@ -0,0 +1,11 @@
using Kreta.Enums;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class MulasztasForOraNaplozasRequest
{
public MulasztasTipusEnum Tipus { get; set; }
public int? Keses { get; set; }
}
}

View file

@ -0,0 +1,123 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.BusinessLogic.Logic.Naplozas;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
using Kreta.Resources;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class OraNaplozasRequest : IValidatableObject
{
public OraNaplozasRequest(OrarendElemUid orarendElemUid, string tema, bool isElmaradt, List<TanuloForOraNaplozasListRequest> tanuloLista, string hazifeladat, DateTime? hazifeladatHatarido, int? hazifeladatId)
{
OrarendElemUid = orarendElemUid;
Tema = tema;
IsElmaradt = isElmaradt;
TanuloLista = tanuloLista;
Hazifeladat = hazifeladat;
HazifeladatHatarido = hazifeladatHatarido;
HazifeladatId = hazifeladatId;
foreach (var tanulo in TanuloLista)
{
if (OccurrenceNumberByPrimaryKey.ContainsKey(tanulo.Id))
{
OccurrenceNumberByPrimaryKey[tanulo.Id]++;
}
else
{
OccurrenceNumberByPrimaryKey.Add(tanulo.Id, 1);
}
}
}
public OrarendElemUid OrarendElemUid { get; set; }
public string Tema { get; set; }
public bool IsElmaradt { get; set; }
public List<TanuloForOraNaplozasListRequest> TanuloLista { get; set; }
public string Hazifeladat { get; set; }
public DateTime? HazifeladatHatarido { get; set; }
public int? HazifeladatId { get; set; }
public Dictionary<int, int> OccurrenceNumberByPrimaryKey = new Dictionary<int, int>();
public void ConvertTo(NaplozasMobilCo co)
{
co.OraAdat.Datum = OrarendElemUid.Datum;
co.OraAdat.IsElmaradt = IsElmaradt;
co.OraAdat.Tema = Tema;
co.OraAdat.OrarendiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.OrarendiOra ? OrarendElemUid.Id : (int?)null;
co.OraAdat.TanitasiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra ? OrarendElemUid.Id : (int?)null;
co.Hazifeladat.Id = HazifeladatId;
co.Hazifeladat.Szoveg = Hazifeladat;
co.Hazifeladat.Hatarido = HazifeladatHatarido;
foreach (var tanulo in TanuloLista)
{
var tanuloMulasztas = new NaplozasMobilCo.MulasztasModel
{
TanuloId = tanulo.Id,
MulasztasTipus = (int)tanulo.Mulasztas.Tipus,
Keses = tanulo.Mulasztas.Keses
};
foreach (var esemenyTipus in tanulo.FeljegyzesTipusLista)
{
switch (esemenyTipus)
{
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 Dictionary<Predicate<OraNaplozasRequest>, string> ModelValidaciok => new Dictionary<Predicate<OraNaplozasRequest>, string>
{
{
x => x.HazifeladatHatarido < x.OrarendElemUid.Datum.Date.AddDays(1),
ErrorResource.HazifeladatNemrogzithetoHataridoKorabbiMintAzOraDatuma
},
{
x => x.HazifeladatHatarido < DateTime.Today.AddDays(1),
ErrorResource.HazifeladatNemrogzithetoHataridoKorabbiMintAHolnapiNap
},
{
x => x.HazifeladatId.HasValue && string.IsNullOrWhiteSpace(x.Hazifeladat),
OrarendResource.HazifeladatSzovegKotelezo
},
{
x => x.TanuloLista.Any(y => (int)y.Mulasztas.Tipus == (int)MulasztasTipusEnum.keses && y.Mulasztas.Keses <= 0),
"A késés értéke nem lehet 0 vagy negatív szám!"
},
{
x => x.OccurrenceNumberByPrimaryKey.Any(y => y.Value > 1),
$"A következő tanulók többször szerepelnek: {string.Join(", ", OccurrenceNumberByPrimaryKey.Where(x => x.Value > 1).Select(y => y.Key))}"
}
};
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
}
}

View file

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.BusinessLogic.Logic.Naplozas;
using Kreta.Enums.ManualEnums;
using Kreta.Naplo.Domain.V3.Interfaces;
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
using Kreta.Resources;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class OraNaplozasTorlesRequest : IValidatableObject, IModelValidacio<OraNaplozasTorlesRequest>
{
public OraNaplozasTorlesRequest(string orarendElemUid)
{
OrarendElemUid = new OrarendElemUid(orarendElemUid);
}
public OraNaplozasTorlesRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
{
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
}
public Dictionary<Predicate<OraNaplozasTorlesRequest>, string> ModelValidaciok => new Dictionary<Predicate<OraNaplozasTorlesRequest>, string>
{
{ x => x.OrarendElemUid != null && x.OrarendElemUid.Tipus != CalendarOraTypeEnum.TanitasiOra, ErrorResource.ATorolniKivantOraNemTanitasiOra }
};
[Required]
public OrarendElemUid OrarendElemUid { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
public void ConvertTo(NaplozasMobilCo co)
{
co.OraAdat.Datum = OrarendElemUid.Datum;
co.OraAdat.OrarendiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.OrarendiOra ? OrarendElemUid.Id : (int?)null;
co.OraAdat.TanitasiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra ? OrarendElemUid.Id : (int?)null;
}
}
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.Enums.ManualEnums;
using Kreta.Naplo.Domain.V3.Interfaces;
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class OrarendElemRequest : IValidatableObject, IModelValidacio<OrarendElemRequest>
{
public OrarendElemRequest(string orarendElemUid)
{
OrarendElemUid = new OrarendElemUid(orarendElemUid);
}
public OrarendElemRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
{
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
}
public Dictionary<Predicate<OrarendElemRequest>, string> ModelValidaciok => new Dictionary<Predicate<OrarendElemRequest>, string>
{
{ x => x.OrarendElemUid != null
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.OrarendiOra
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.TanitasiOra
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.UresOra
, "Csak órarendi, tanítási és elmaradt óra kérhető le!" }
};
[Required]
public OrarendElemUid OrarendElemUid { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
}
}

View file

@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using Kreta.Naplo.Domain.V3.Csatolmany;
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class OrarendElemResponse
{
public OrarendElemUid Uid { get; set; }
public string Nev { get; set; }
public bool HasOrarendiOra { get; set; }
public int OsztalyCsoportId { get; set; }
public string OsztalyCsoportNev { get; set; }
public int TantargyId { get; set; }
public string TantargyNev { get; set; }
public string Terem { get; set; }
public DateTime Kezdete { get; set; }
public DateTime Vege { get; set; }
public string Tema { get; set; }
public int? Oraszam { get; set; }
public int Allapot { get; set; }
public Guid TanarUid { get; set; }
public string TanarNev { get; set; }
public Guid? HelyettesitoTanarUid { get; set; }
public string HelyettesitoTanarNev { get; set; }
public int? EvesOraSorszam { get; set; }
public int? HaziFeladatId { get; set; }
public int? BejelentettSzamonkeresId { get; set; }
public string BejelentettSzamonkeresMod { get; set; }
public string BejelentettSzamonkeresTema { get; set; }
public List<CsatolmanyResponse> Csatolmanyok { get; set; }
public DateTime? ElozoNaplozottOraDatum { get; set; }
public string ElozoNaplozottOraTema { get; set; }
public bool Naplozart { get; set; }
}
}

View file

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using Kreta.Enums.ManualEnums;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class OrarendElemSimplified : IEqualityComparer<OrarendElemSimplified>
{
public OrarendElemSimplified()
{
}
public OrarendElemSimplified(int id, int orarendiOraId, int orarendiOraGroupId, CalendarOraTypeEnum tipus, DateTime datum)
{
Id = id;
OrarendiOraId = orarendiOraId;
OrarendiOraGroupId = orarendiOraGroupId;
Tipus = tipus;
Datum = datum;
}
public int Id { get; set; }
public int OrarendiOraId { get; set; }
public int OrarendiOraGroupId { get; set; }
public CalendarOraTypeEnum Tipus { get; set; }
public DateTime Datum { get; set; }
public bool Equals(OrarendElemSimplified x, OrarendElemSimplified y) => x == y || (x.Id == y.Id && x.Tipus == y.Tipus && x.Datum == y.Datum);
public int GetHashCode(OrarendElemSimplified obj) => obj.Id.GetHashCode();
}
}

View file

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data.SqlTypes;
using System.Linq;
using Kreta.Naplo.Domain.V3.Interfaces;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class OrarendRequest : IValidatableObject, IModelValidacio<OrarendRequest>
{
public OrarendRequest(DateTime datumTol, DateTime datumIg)
{
DatumTol = datumTol;
DatumIg = datumIg;
}
public DateTime DatumTol { get; set; }
public DateTime DatumIg { get; set; }
public Dictionary<Predicate<OrarendRequest>, string> ModelValidaciok => new Dictionary<Predicate<OrarendRequest>, string>
{
{ x => x.DatumIg < x.DatumTol, $"A {nameof(DatumTol)} és a {nameof(DatumIg)} paraméterek meg vannak adva, de a {nameof(DatumTol)} nagyobb, mint a {nameof(DatumIg)} értek!" },
{ x => (x.DatumIg - x.DatumTol).Days > 31, $"A {nameof(DatumTol)} és a {nameof(DatumIg)} paraméterek meg vannak adva, de maximum 1 hónap intervallum kérdezhető le!" },
{ x => x.DatumTol < (DateTime)SqlDateTime.MinValue || x.DatumTol > (DateTime)SqlDateTime.MaxValue, $"A {nameof(DatumTol)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!" },
{ x => x.DatumIg < (DateTime)SqlDateTime.MinValue || x.DatumIg > (DateTime)SqlDateTime.MaxValue, $"A {nameof(DatumIg)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!" },
{ x => x.DatumTol.Millisecond > 0 || x.DatumIg.Millisecond > 0 , $"A {nameof(DatumTol)} és a {nameof(DatumIg)} paraméterek csak másodperc pontossággal megadhatóak!" }
};
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
}
}

View file

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.Enums.ManualEnums;
using Kreta.Naplo.Domain.V3.Interfaces;
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
using Kreta.Resources;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class SzamonkeresRequest : IValidatableObject, IModelValidacio<SzamonkeresRequest>
{
public SzamonkeresRequest(string orarendElemUid)
{
OrarendElemUid = new OrarendElemUid(orarendElemUid);
}
public OrarendElemUid OrarendElemUid { get; set; }
public int ErtekelesMod { get; set; }
public string Tema { get; set; }
public bool ForceSave { get; set; }
public Dictionary<Predicate<SzamonkeresRequest>, string> ModelValidaciok => new Dictionary<Predicate<SzamonkeresRequest>, string>
{
{ x => x.OrarendElemUid != null && x.OrarendElemUid.Tipus != CalendarOraTypeEnum.OrarendiOra, OrarendResource.CsakOrarendiOraAdhatoMeg },
{ x => x.OrarendElemUid.Datum.Date <= DateTime.Now.Date, OrarendResource.SzamonkeresLeghamarabbAHolnapiNaptolRogzitheto }
};
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
}
}

View file

@ -0,0 +1,11 @@
using System.Collections.Generic;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class TanuloForOraNaplozasListRequest
{
public int Id { get; set; }
public MulasztasForOraNaplozasRequest Mulasztas { get; set; }
public List<int> FeljegyzesTipusLista { get; set; }
}
}

View file

@ -0,0 +1,23 @@
using System;
using System.ComponentModel.DataAnnotations;
using Kreta.Enums.ManualEnums;
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class TanuloJelenletRequest
{
public TanuloJelenletRequest(string orarendElemUid)
{
OrarendElemUid = new OrarendElemUid(orarendElemUid);
}
public TanuloJelenletRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
{
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
}
[Required]
public OrarendElemUid OrarendElemUid { get; set; }
}
}

View file

@ -0,0 +1,29 @@
using System.Collections.Generic;
namespace Kreta.Naplo.Domain.V3.Orarend
{
public class TanuloJelenletResponse
{
public TanuloJelenletResponse(int tanuloId, int allapot, int? keses, string szoveg, bool hasMulasztasGomb)
{
TanuloId = tanuloId;
Allapot = allapot;
MulasztasTipus = allapot;
Keses = keses;
Szoveg = szoveg;
HasMulasztasGomb = hasMulasztasGomb;
}
public int TanuloId { get; set; }
public int Allapot { get; set; }
public int MulasztasTipus { get; set; }
public int? Keses { get; set; }
public string Szoveg { get; set; }
public bool HasMulasztasGomb { get; set; }
}
}