using BlazorWebAssemblyVisaApiClient.Infrastructure.Services.DateTimeProvider; using FluentValidation; using VisaApiClient; namespace BlazorWebAssemblyVisaApiClient.Validation.VisaApplications.Validators; public class PastVisaModelValidator : AbstractValidator { public PastVisaModelValidator(IDateTimeProvider dateTimeProvider) { RuleFor(v => v.ExpirationDate) .NotEmpty() .WithMessage("Expiration date of past visa can not be empty") .GreaterThan(v => v.IssueDate) .WithMessage("Past visa expiration date can not be earlier than issue date"); RuleFor(v => v.IssueDate) .NotEmpty() .WithMessage("Issue date of past visa can not be empty") .LessThan(dateTimeProvider.Now()) .WithMessage("Issue date of past visa must be in past"); RuleFor(v => v.Name) .NotEmpty() .WithMessage("Name of past visa can not be empty"); } }