Files
kreta/Kreta.WebApi/Ellenorzo/Kreta.Ellenorzo.Domain/VN/Felhasznalo/Gondviselo/GondviseloBaseAdatlapRequest.cs
T
2024-03-13 00:33:46 +01:00

74 lines
2.8 KiB
C#

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