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 { public Dictionary, string> ModelValidaciok => new Dictionary, 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 Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value)); } }