public async Task <ResponseModel> ChangePasscode(int idUser, ChangePasscodeModel changePasscode) { ResponseModel result = new ResponseModel(); if (!UtilCommon.IsValidPassword(changePasscode.NewPasscode)) { result.Error = ErrorMessageCode.PASSWORD_INVALID; result.Status = System.Net.HttpStatusCode.BadRequest; return(result); } var user = await _userRepo.GetByIdAsync(idUser); if (user == null) { result.Error = ErrorMessageCode.USER_NOT_FOUND; result.Status = System.Net.HttpStatusCode.BadRequest; return(result); } if (!user.PassCode.Equals(UtilCommon.GeneratePasscode(changePasscode.OldPasscode, user.Salt))) { result.Error = ErrorMessageCode.PASSWORD_INVALID; result.Status = System.Net.HttpStatusCode.BadRequest; return(result); } try { string newPasscode = UtilCommon.GeneratePasscode(changePasscode.NewPasscode, user.Salt); user.PassCode = newPasscode; var res = await _userRepo.UpdateAsync(user); if (res != Constants.REPOSITORY_FAILED) { result.Status = System.Net.HttpStatusCode.OK; result.IsSuccess = true; if (user.IsFirstLogin) { user.IsFirstLogin = false; await _userRepo.UpdateAsync(user); } return(result); } else { result.Error = ErrorMessageCode.UPDATE_PASSWORD_FAILED; result.Status = System.Net.HttpStatusCode.InternalServerError; return(result); } } catch (Exception ex) { result.Error = ex.ToString(); result.Status = System.Net.HttpStatusCode.NotImplemented; return(result); } }
public async Task <IActionResult> ChangePasscode([FromBody] ChangePasscodeModel model) { if (model == null || string.IsNullOrWhiteSpace(model.NewPasscode) || string.IsNullOrWhiteSpace(model.OldPasscode)) { return(GetBadRequestResult(ErrorMessageCode.FIELDS_IS_EMPTY)); } try { var response = await _userService.ChangePasscode(CurrentUser.UserId, model); return(GetResult(response)); } catch (Exception ex) { return(GetServerErrorResult(ex.ToString())); } }