using cuqmbr.TravelGuide.Application.Common.FluentValidation; using cuqmbr.TravelGuide.Application.Common.Services; using FluentValidation; using Microsoft.Extensions.Localization; namespace cuqmbr.TravelGuide.Application.Authenticaion.Commands.Register; public class RegisterCommandValidator : AbstractValidator { public RegisterCommandValidator( IStringLocalizer localizer, SessionCultureService cultureService) { RuleFor(v => v.Username) .NotEmpty() .WithMessage(localizer["FluentValidation.NotEmpty"]) .MinimumLength(1) .WithMessage( String.Format( cultureService.Culture, localizer["FluentValidation.MinimumLength"], 1)) .MaximumLength(32) .WithMessage( String.Format( cultureService.Culture, localizer["FluentValidation.MaximumLength"], 32)) .IsUsername() .WithMessage(localizer["FluentValidation.IsUsername"]); RuleFor(v => v.Email) .NotEmpty() .WithMessage(localizer["FluentValidation.NotEmpty"]) .IsEmail() .WithMessage(localizer["FluentValidation.IsEmail"]); RuleFor(v => v.Password) .NotEmpty() .WithMessage(localizer["FluentValidation.NotEmpty"]) .MinimumLength(8) .WithMessage( String.Format( cultureService.Culture, localizer["FluentValidation.MinimumLength"], 8)) .MaximumLength(256) .WithMessage( String.Format( cultureService.Culture, localizer["FluentValidation.MaximumLength"], 256)); } }