This commit is contained in:
2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions
@@ -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));
}
}