public ActionResult Edit(EventoViewModel evento) { //TODO: o evento não pode estar cancelado para ser alterado. Não mostrar o botão de alterar para eventos cancelados. Fazer isso também na tela de detalhes que possui link para a alteração if (ModelState.IsValid) { var eventoDomain = Mapper.Map <EventoViewModel, Evento>(evento); eventoDomain.UsuarioId = User.Identity.GetUserId(); eventoDomain.DataCancelamento = null; _eventoApp.Update(eventoDomain); return(RedirectToAction("Index")); } return(View(evento)); }
public IActionResult Put([FromBody] MeetupViewModel meetupViewModel) { if (!ModelState.IsValid) { NotificarErroModelInvalida(); return(Response()); } _meetupAppService.Update(meetupViewModel); return(Response(meetupViewModel)); }
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()); }