public async Task <IActionResult> Put(int eventoId, [FromBody] EventoViewModel model) { try { var idLotes = new List <int>(); var idRedesSociais = new List <int>(); idLotes.AddRange(model.Lotes.Select(x => x.Id)); idRedesSociais.AddRange(model.RedesSociais.Select(x => x.Id)); var evento = await eventoAppService.ObterEventoAsyncPorEventoId(eventoId, false); if (evento == null) { return(NotFound()); } var lotes = evento.Lotes.Where(x => !idLotes.Contains(x.Id)); var redesSociais = evento.RedesSociais.Where(x => !idRedesSociais.Contains(x.Id)); if (lotes.Any()) { eventoAppService.DeleteLotes(lotes); } if (redesSociais.Any()) { eventoAppService.DeleteRedesSociais(redesSociais); } evento = eventoAppService.Update(model); if (await eventoAppService.SaveChangesAsync()) { return(Created($"/api/evento/{evento.Id}", evento)); } } catch (System.Exception ex) { return(this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de dados Falhou!")); } return(BadRequest()); }