Пример #1
0
        public async Task Should_ReturnFalse_WhenRequiredInfo_IsNotProvided()
        {
            // Arrange
            var forgotPasswordDto = new ForgotPasswordDto
            {
                Email = ""
            };

            var passwordValidator = new ForgotPasswordValidator();

            // Act
            var validatorResult = await passwordValidator.ValidateAsync(forgotPasswordDto);

            // Assert
            validatorResult.IsValid.ShouldBeFalse();
        }
Пример #2
0
        public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordDto forgotPasswordDto, [FromServices] IForgotPasswordService service)
        {
            var forgotPasswordValidator = new ForgotPasswordValidator();
            var validatorResult         = await forgotPasswordValidator.ValidateAsync(forgotPasswordDto);

            if (validatorResult.IsValid)
            {
                await service.RequestPasswordReset(forgotPasswordDto);

                if (!service.Status.HasErrors)
                {
                    return(Ok());
                }
                return(BadRequest(service.Status.Errors));
            }

            var validationErrors = validatorResult.Errors.Select(error => new ValidationResult(error.ErrorMessage))
                                   .ToImmutableList();

            return(BadRequest(validationErrors));
        }