40 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using BlazorWebAssemblyVisaApiClient.Infrastructure.Services.DateTimeProvider;
 | |
| using FluentValidation;
 | |
| using VisaApiClient;
 | |
| 
 | |
| namespace BlazorWebAssemblyVisaApiClient.Validation.Applicants.Validators;
 | |
| 
 | |
| public class PassportModelValidator : AbstractValidator<PassportModel>
 | |
| {
 | |
|     public PassportModelValidator(IDateTimeProvider dateTimeProvider)
 | |
|     {
 | |
|         RuleFor(r => r.Issuer)
 | |
|             .NotEmpty()
 | |
|             .WithMessage("Passport issuer can not be empty")
 | |
|             .Matches(Constants.EnglishPhraseRegex)
 | |
|             .WithMessage("Passport issuer field can contain only english letters, digits and special symbols")
 | |
|             .MaximumLength(ConfigurationConstraints.IssuerNameLength)
 | |
|             .WithMessage($"Passport issuer length must be less than {ConfigurationConstraints.IssuerNameLength}");
 | |
| 
 | |
|         RuleFor(r => r.Number)
 | |
|             .NotEmpty()
 | |
|             .WithMessage("Passport number can not be empty")
 | |
|             .Matches(Constants.EnglishPhraseRegex)
 | |
|             .WithMessage("Passport number field can contain only english letters, digits and special symbols")
 | |
|             .MaximumLength(ConfigurationConstraints.PassportNumberLength)
 | |
|             .WithMessage($"Passport number length must be less than {ConfigurationConstraints.PassportNumberLength}");
 | |
| 
 | |
|         RuleFor(r => r.ExpirationDate)
 | |
|             .NotEmpty()
 | |
|             .WithMessage("Passport expiration date can not be empty")
 | |
|             .GreaterThan(dateTimeProvider.Now())
 | |
|             .WithMessage("Can not approve visa for applicants with expired passport");
 | |
| 
 | |
|         RuleFor(r => r.IssueDate)
 | |
|             .NotEmpty()
 | |
|             .WithMessage("Passport issue date can not be empty")
 | |
|             .LessThanOrEqualTo(dateTimeProvider.Now())
 | |
|             .WithMessage("Passport issue date must be in past");
 | |
|     }
 | |
| }
 |