public async Task <ProcessResult <AppUserDTO> > UpdateCurrentUserAsync(AppUserForUpdate model) { async Task <AppUserDTO> action() { var now = DateTime.UtcNow; var countUserExists = await _repoWrapper.AppUser.FindByCondition(u => u.Id != model.Id && u.Email == model.Email).CountAsync(); if (countUserExists > 0) { throw new InvalidOperationException("Email is exists"); } var user = _mapper.Map(model, CurrentUser); user.ModifyDate = now; user.ModifyBy = CurrentUser.UserName; user.Version += 1; _repoWrapper.AppUser.Update(user); return(await _repoWrapper.SaveAsync() > 0 ? _mapper.Map <AppUserDTO>(user) : throw new InvalidOperationException("Save fail")); } return(await Process.RunAsync(action)); }
public async Task <ActionResult <AppUserDTO> > UpdateUserAsync(Guid id, AppUserForUpdate model) { if (model.Id != id) { return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Update fail", "Id Invalid"))); } var result = await _appUserService.UpdateAsync(model); if (result.Succeed == false) { return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Update fail", result.Errors))); } return(Ok(result.Value)); }
public async Task <ActionResult <AppUserDTO> > UpdateCurrentUserAsync(Guid id, AppUserForUpdate model) { if (!id.Equals(model.Id)) { return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Invalid id"))); } if (!ModelState.IsValid) { var errors = ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage).ToList(); return(BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Validation error", errors))); } var result = await _appUserService.UpdateCurrentUserAsync(model); return(result.Succeed ? Ok(result.Value) : BadRequest(new ErrorResponse(HttpStatusCode.BadRequest, "Update fail", result.Errors))); }