public async Task <ActionResult <ResponseViewModel> > PutAsync( int id, [FromBody] Evento evento ) { if (!ModelState.IsValid) { return(BadRequest( new ResponseViewModel { Success = false, Message = "Erros de validação.", Data = ModelState } )); } var existing = await _eventoRepository.GetAsync(id); if (existing == null) { return(BadRequest( new ResponseViewModel { Success = false, Message = "Registro não localizado.", Data = null } )); } existing.Nome = evento.Nome; existing.Descricao = evento.Descricao; existing.Inicio = evento.Inicio; existing.Fim = evento.Fim; existing.SalaId = evento.SalaId; existing.ResponsavelId = evento.ResponsavelId; var retorno = _eventoRepository.UpdateAsync(existing); if (retorno.Result != null) { return(BadRequest( new ResponseViewModel { Success = false, Message = "Já existe outro evento agendado para a sala no horário solicitado.", Data = retorno } )); } return(Ok( new ResponseViewModel { Success = true, Message = "Registro atualizado com sucesso.", Data = evento } )); }