public async Task <IResponseDTO> ResetPassword(ResetPasswordParamsDto options) { try { if (string.IsNullOrEmpty(options.Email)) { _response.Errors.Add("Email is not found"); _response.IsPassed = false; return(_response); } else if (string.IsNullOrEmpty(options.Token)) { _response.Errors.Add("Token is not valid"); _response.IsPassed = false; return(_response); } var appUser = await _userManager.FindByEmailAsync(options.Email.Trim()); if (appUser == null) { _response.Errors.Add("Email is not found"); _response.IsPassed = false; return(_response); } else if (appUser.Status == UserStatusEnum.Locked.ToString()) { _response.Errors.Add("Your Account is locked. Please contact your administration"); _response.IsPassed = false; return(_response); } else if (appUser.Status == UserStatusEnum.NotActive.ToString()) { _response.Errors.Add("Your Account is disabled. Please contact your administration"); _response.IsPassed = false; return(_response); } // appUser.IsPasswordSet = true; var result = await _userManager.ResetPasswordAsync(appUser, options.Token, options.NewPassword); if (!result.Succeeded) { _response.IsPassed = false; _response.Errors = result.Errors.Select(x => x.Description).ToList(); return(_response); } _response.IsPassed = true; _response.Message = "Your password is setted successfully"; } catch (Exception ex) { _response.IsPassed = false; _response.Message = $"Error: {ex.Message} Details: {ex.InnerException?.Message}"; return(_response); } return(_response); }
public async Task <IResponseDTO> ResetPassword([FromBody] ResetPasswordParamsDto options) { _response = await _accountService.ResetPassword(options); return(_response); }