public IActionResult Put(Guid usuarioId, [FromBody] UpdateUsuarioModel usuarioModel) { if (usuarioModel == null) { return(BadRequest()); } var usuarioEntity = _repository.RetornaUsuario(usuarioId); if (usuarioEntity == null) { return(NotFound()); } // Valida email duplicado if (_repository.EmailExists(usuarioModel.Email, usuarioId)) { ModelState.AddModelError("Email", "O e-mail informado já está sendo utilizado"); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } if (!_repository.UsuarioExists(usuarioId)) { return(NotFound()); } _mapper.Map(usuarioModel, usuarioEntity); _repository.AtualizaUsuario(usuarioEntity); if (!_repository.Save()) { throw new Exception("Ocorreu um erro inesperado ao atualizar o usuário"); } return(NoContent()); }