Comment valider la date de naissance en utilisant la validation fluide en C# si la date de naissance dépasse l'année en cours ?

WBOY
Libérer: 2023-08-30 10:09:02
avant
887 Les gens l'ont consulté

如果出生日期超过当前年份,如何使用 C# 中的流畅验证来验证出生日期?

Pour spécifier une règle de validation pour un attribut spécifique, appelez la méthode RuleFor, en passant une expression lambda représentant l'attribut à valider

RuleFor(p => p.DateOfBirth)

Pour exécuter le validateur, instanciez la validation Object et appelez la méthode Validate en lui passant l'objet à valider.

Résultats ValidationResult = validator.Validate(person);

La méthode Validation renvoie un objet ValidationResult. Il contient deux propriétés

IsValid - une valeur booléenne indiquant si la validation a réussi.

Errors - Collection d'objets ValidationFailure contenant des détails sur les éventuels échecs de validation

Exemple 1

static void Main(string[] args) {
   List errors = new List();

   PersonModel person = new PersonModel();
   person.FirstName = "TestUser";
   person.LastName = "TestUser";
   person.AccountBalance = 100;
   person.DateOfBirth = DateTime.Now.Date.AddYears(1);

   PersonValidator validator = new PersonValidator();

   ValidationResult results = validator.Validate(person);

   if (results.IsValid == false) {
      foreach (ValidationFailure failure in results.Errors){
         errors.Add(failure.ErrorMessage);
      }
   }

   foreach (var item in errors){
      Console.WriteLine(item);
   }
   Console.ReadLine();

   }
}

public class PersonModel {
   public string FirstName { get; set; }
   public string LastName { get; set; }
   public decimal AccountBalance { get; set; }
   public DateTime DateOfBirth { get; set; }
}

public class PersonValidator : AbstractValidator{
   public PersonValidator(){
      RuleFor(p => p.DateOfBirth)
      .Must(BeAValidAge).WithMessage("Invalid {PropertyName}");
   }

   protected bool BeAValidAge(DateTime date){
      int currentYear = DateTime.Now.Year;
      int dobYear = date.Year;

      if (dobYear <= currentYear && dobYear > (currentYear - 120)){
         return true;
      }

      return false;
   }
}
Copier après la connexion

Output

Invalid Date Of Birth
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal