public async Task <IActionResult> VerifyResetPasswordRequest([FromBody] VerifyResetPasswordRequestDto request)
        {
            var response = await identityService.VerifyResetPasswordRequest(request);

            if (!response.IsSuccess)
            {
                return(BadRequest(response));
            }
            return(Ok(response));
        }
        public async Task <BaseResponse> VerifyResetPasswordRequest(VerifyResetPasswordRequestDto request)
        {
            var user = await userManager.FindByEmailAsync(request.Email);

            if (!await userManager.VerifyChangePhoneNumberTokenAsync(user, request.Code, user.PhoneNumber))
            {
                return(new PasswordResetResponse(false, 400, localizer["PasswordResetResponseErrMsg"], new List <ValidationError> {
                    new ValidationError {
                        Name = "Token", Description = localizer["PasswordRestTokenInvalid"]
                    }
                }));
            }

            var passwordValidator   = new PasswordValidator <ApplicationUser>();
            var passValidatorResult = await passwordValidator.ValidateAsync(userManager, user, request.NewPassword);

            if (!passValidatorResult.Succeeded)
            {
                return(new PasswordResetResponse(false, 400, localizer["PasswordResetResponseErrMsg"], passValidatorResult.Errors.Select(p => new ValidationError {
                    Name = p.Code, Description = p.Description
                }).ToList()));
            }

            var newPassword = userManager.PasswordHasher.HashPassword(user, request.NewPassword);

            user.PasswordHash = newPassword;
            user.UpdateDate   = DateTime.Now;

            var result = await userManager.UpdateAsync(user);

            if (result.Succeeded)
            {
                return(new PasswordResetResponse(true, 200, localizer["PasswordRestResponseSuccessMsg"]));
            }
            else
            {
                return(new PasswordResetResponse(false, 400, localizer["PasswordResetResponseErrMsg"], result.Errors.Select(p => new ValidationError {
                    Name = p.Code, Description = p.Description
                }).ToList()));
            }
        }