using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using Kreta.Ellenorzo.Domain.VN.Interfaces; using Kreta.Ellenorzo.Domain.VN.Utility.ValidationAttributes; namespace Kreta.Ellenorzo.Domain.VN.Felhasznalo.Gondviselo { public class GondviseloBaseAdatlapRequest : IValidatableObject, IModelValidacio { public string Elotag { get; set; } public string Vezeteknev { get; set; } public string Utonev { get; set; } public string SzuletesiVezeteknev { get; set; } public string SzuletesiUtonev { get; set; } public string SzuletesiHely { get; set; } [ShortDateTime] public DateTime? SzuletesiDatum { get; set; } public string AnyjaVezeteknev { get; set; } public string AnyjaUtonev { get; set; } public Dictionary, string> ModelValidaciok => new Dictionary, string> { { x => !string.IsNullOrWhiteSpace(x.Elotag) && !Core.Constants.ElotagList.Contains(x.Elotag), $"Az {nameof(Elotag)} paraméter nem szerepel a kiválasztható értékek között!" }, { x => string.IsNullOrWhiteSpace(x.Vezeteknev), $"A {nameof(Vezeteknev)} paraméter megadása kötelező!" }, { x => string.IsNullOrWhiteSpace(x.Utonev), $"Az {nameof(Utonev)} paraméter megadása kötelező!" }, { x => string.IsNullOrWhiteSpace(x.SzuletesiVezeteknev), $"A {nameof(SzuletesiVezeteknev)} paraméter megadása kötelező!" }, { x => string.IsNullOrWhiteSpace(x.SzuletesiUtonev), $"A {nameof(SzuletesiUtonev)} paraméter megadása kötelező!" }, { x => string.IsNullOrWhiteSpace(x.SzuletesiHely), $"A {nameof(SzuletesiHely)} paraméter megadása kötelező!" }, { x => !x.SzuletesiDatum.HasValue, $"A {nameof(SzuletesiDatum)} paraméter megadása kötelező!" }, { x => string.IsNullOrWhiteSpace(x.AnyjaVezeteknev), $"Az {nameof(AnyjaVezeteknev)} paraméter megadása kötelező!" }, { x => string.IsNullOrWhiteSpace(x.AnyjaUtonev), $"Az {nameof(AnyjaUtonev)} paraméter megadása kötelező!" } }; public IEnumerable Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value)); } }