public IActionResult UpdateUser([FromRoute] Guid userId, [FromBody] MyUserUpdateDTO user) { if (user is null || userId == Guid.Empty) { return(BadRequest()); } if (!ModelState.IsValid) { return(UnprocessableEntity(ModelState)); } var userUpdate = new UserEntity(userId); mapper.Map(user, userUpdate); bool isInsert; userRepository.UpdateOrInsert(userUpdate, out isInsert); if (!isInsert) { return(NoContent()); } return(CreatedAtRoute( nameof(GetUserById), new { userId = userUpdate.Id }, userUpdate.Id)); }
public IActionResult PartiallyUpdateUser([FromRoute] Guid userId, [FromBody] JsonPatchDocument <MyUserUpdateDTO> patchDoc) { if (patchDoc is null) { return(BadRequest()); } var user = userRepository.FindById(userId); if (user is null) { return(NotFound()); } var updateDto = new MyUserUpdateDTO(); patchDoc.ApplyTo(updateDto, ModelState); // Валидация по атрибутам var isValid = TryValidateModel(updateDto); // Другие валидации... if (!isValid) { return(UnprocessableEntity(ModelState)); } mapper.Map(updateDto, user); userRepository.Update(user); return(NoContent()); }