public UserSignUpNotificationValidator(IMediator mediator) { RuleFor(notification => notification.FirstName) .NotEmpty() .MaximumLength(UserValidationConstants.DefaultMaxLength); RuleFor(notification => notification.LastName) .NotEmpty() .MaximumLength(UserValidationConstants.DefaultMaxLength); RuleFor(notification => notification.Email) .NotEmpty() .EmailAddress() .MustAsync(async(email, cancelationToken) => { var request = new SupplierInvitationExistsByEmailRequest { Email = email }; var supplierInvitationExists = await mediator.Send(request); return(!supplierInvitationExists); }); RuleFor(notification => notification.Password) .NotEmpty() .MinimumLength(AuthenticationValidationConstants.PasswordMinLength); RuleFor(notification => notification.PasswordConfirmation) .Equal(notification => notification.Password); }
public InviteSupplierNotificationValidator(IMediator mediator) { RuleFor(notification => notification.Name) .NotEmpty() .MaximumLength(ValidationConstants.DefaultMaxLength); RuleFor(notification => notification.Email) .NotEmpty() .EmailAddress() .MustAsync(async(email, cancelationToken) => { var request = new UserExistsByEmailRequest { Email = email }; var userExists = await mediator.Send(request); return(!userExists); }) .WithMessage(email => $"User with email {email} alredy exists.") .MustAsync(async(email, cancelationToken) => { var request = new SupplierInvitationExistsByEmailRequest { Email = email }; var supplierInvitationExists = await mediator.Send(request); return(!supplierInvitationExists); }) .WithMessage(email => $"Supplier invitation for email {email} alredy exists."); }