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,49 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Kreta.Ellenorzo.Domain.VN.Interfaces;
using Kreta.Ellenorzo.Domain.VN.Logic;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Ellenorzo.Domain.VN.Utility.ValidationAttributes;
namespace Kreta.Ellenorzo.Domain.VN.Mulasztas
{
public class MulasztasListRequest : IValidatableObject, IRequestUidFilter<MulasztasUid>, IModelValidacio<MulasztasListRequest>
{
public MulasztasListRequest()
{
}
public MulasztasListRequest(string uidRaw)
{
Uid = UidLogic.GetUid(uidRaw, UidConverter);
}
[ShortDateTime]
public DateTime? DatumIg { get; set; }
[ShortDateTime]
public DateTime? DatumTol { get; set; }
public bool IsCallerGetOnlyOneItem { get; set; }
public Dictionary<Predicate<MulasztasListRequest>, string> ModelValidaciok => new Dictionary<Predicate<MulasztasListRequest>, string>
{
{
x => x.DatumIg.HasValue && x.DatumTol.HasValue && (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.HasValue && x.DatumTol.HasValue && (((TimeSpan)(x.DatumIg - x.DatumTol)).Days > 21),
$"A {nameof(DatumTol)} és a {nameof(DatumIg)} paraméterek meg vannak adva, de maximum 3 hetes intervallum kérdezhető le!"
}
};
public MulasztasUid Uid { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
public static readonly Converter<string[], MulasztasUid> UidConverter = uidRaw => new MulasztasUid(uidRaw[0]);
}
}

View file

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using Kreta.Ellenorzo.Domain.VN.Adatszotar;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar;
using Kreta.Ellenorzo.Domain.VN.Ora.TanitasiOra;
using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport;
using Kreta.Ellenorzo.Domain.VN.Tantargy;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Ellenorzo.Enums.VN;
using Kreta.Enums;
namespace Kreta.Ellenorzo.Domain.VN.Mulasztas
{
public class MulasztasListResponse : IEqualityComparer<MulasztasListResponse>
{
public DateTime Datum { get; set; }
public IgazolasAllapota IgazolasAllapota { get; set; }
public Adatszotar<IgazolasTipusEnum> IgazolasTipusa { get; set; }
public int? KesesPercben { get; set; }
public DateTime KeszitesDatuma { get; set; }
public Adatszotar<MulasztasMod> Mod { get; set; }
public TanitasiOraResponse Ora { get; set; }
public TanarSimplifiedResponse RogzitoTanar { get; set; }
public TantargyResponse Tantargy { get; set; }
public Adatszotar<MulasztasTipusEnum> Tipus { get; set; }
public OsztalyCsoportSimplifiedResponse OsztalyCsoport { get; set; }
public MulasztasUid Uid { get; set; }
public bool Equals(MulasztasListResponse x, MulasztasListResponse y) => x.Uid.Equals(x.Uid, y.Uid);
public int GetHashCode(MulasztasListResponse obj) => obj.Uid.UidRaw.GetHashCode();
}
}