public async Task <IResponseDTO> ChangePassword(int userId, ChangePasswordParamsDto options) { try { if (string.IsNullOrEmpty(options.CurrentPassword)) { _response.Errors.Add("Currnet password should not be empty"); _response.IsPassed = false; return(_response); } else if (string.IsNullOrEmpty(options.NewPassword)) { _response.Errors.Add("New password should not be empty"); _response.IsPassed = false; return(_response); } var appUser = await _userManager.FindByIdAsync(userId.ToString()); if (appUser == null) { _response.Errors.Add("User 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); } var result = await _userManager.ChangePasswordAsync(appUser, options.CurrentPassword, 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 changed successfully"; } catch (Exception ex) { _response.IsPassed = false; _response.Message = $"Error: {ex.Message} Details: {ex.InnerException?.Message}"; return(_response); } return(_response); }
public async Task <IResponseDTO> ChangePassword([FromBody] ChangePasswordParamsDto options) { _response = await _accountService.ChangePassword(LoggedInUserId, options); return(_response); }