public async Task <IActionResult> UpdateUser(string id, [FromBody] JsonPatchDocument <UserPatchViewModel> patch) { if (!(await _authorizationService.AuthorizeAsync(this.User, id, AccountManagementOperations.Update)).Succeeded) { return(new ChallengeResult()); } if (ModelState.IsValid) { if (patch == null) { return(BadRequest($"{nameof(patch)} cannot be null")); } ApplicationUser appUser = await _accountManager.GetUserByIdAsync(id); if (appUser == null) { return(NotFound(id)); } UserPatchViewModel userPVM = _mapper.Map <UserPatchViewModel>(appUser); patch.ApplyTo(userPVM, (e) => AddError(e.ErrorMessage)); if (ModelState.IsValid) { _mapper.Map <UserPatchViewModel, ApplicationUser>(userPVM, appUser); } } return(BadRequest(ModelState)); }
public async Task <IActionResult> UpdateUser(string id, [FromBody] JsonPatchDocument <UserPatchViewModel> patch) { if (!(await _authorizationService.AuthorizeAsync(User, id, AccountManagementOperations.Update)).Succeeded) { return(new ChallengeResult()); } if (ModelState.IsValid) { if (patch == null) { return(BadRequest($"{nameof(patch)} cannot be null")); } ApplicationUser appUser = await _accountManager.GetUserByIdAsync(id); if (appUser == null) { return(NotFound(id)); } UserPatchViewModel userPvm = Mapper.Map <UserPatchViewModel>(appUser); patch.ApplyTo(userPvm, ModelState); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Mapper.Map(userPvm, appUser); var result = await _accountManager.UpdateUserAsync(appUser); if (result.Succeeded) { return(NoContent()); } AddError(result.Errors); } return(BadRequest(ModelState)); }
public async Task <IActionResult> UpdateUser(string id, [FromBody] JsonPatchDocument <UserPatchViewModel> patch) { if (!await _authorizationService.AuthorizeAsync(this.User, id, AuthPolicies.ManageUserByUserIdPolicy)) { return(new ChallengeResult()); } if (ModelState.IsValid) { if (patch == null) { return(BadRequest($"{nameof(patch)} cannot be empty")); } ApplicationUser appUser = await _accountManager.GetUserByIdAsync(id); if (appUser == null) { return(NotFound(id)); } UserPatchViewModel userPVM = Mapper.Map <UserPatchViewModel>(appUser); patch.ApplyTo(userPVM, ModelState); if (ModelState.IsValid) { Mapper.Map <UserPatchViewModel, ApplicationUser>(userPVM, appUser); var result = await _accountManager.UpdateUserAsync(appUser); if (result.Item1) { return(NoContent()); } AddErrors(result.Item2); } } return(BadRequest(ModelState)); }
public async Task Patch_ShouldReturnOk() { // Arrange var user = new User { UserId = Guid.NewGuid(), Email = "*****@*****.**", FirstName = "Jing" }; var model = new UserPatchViewModel { FirstName = "SuperJing" }; Mock.Mock <IUserService>().Setup(x => x.GetUser(user.UserId)).Returns(Task.FromResult(user)); // Act var retVal = await Controller.Patch(user.UserId, model); // Assert Assert.That(retVal, Is.Not.Null); Assert.That(retVal, Is.TypeOf <OkResult>()); Mock.Mock <IUserService>().Verify(x => x.UpdateUser(It.Is <User>(y => y.FirstName == model.FirstName)), Times.Once); }
public async Task <IHttpActionResult> Patch(Guid id, UserPatchViewModel model) { if (model == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _userService.GetUser(id).ConfigureAwait(false); if (user == null) { return(NotFound()); } _mapping.Map(model, user); await _userService.UpdateUser(user).ConfigureAwait(false); return(Ok()); }