public ActionResult Editar(CelulaViewmodel model) { try { #region preparação ViewBag.PessoasDisponiveis = Mapper.Map <IEnumerable <Pessoa>, IEnumerable <PessoaViewmodel> >(_svcPessoa.GetAll()); #endregion //valida se não há erros no modelstate (caso o jquery validation falhe) if (!ModelState.IsValid) { return(View(model)); } //carerga a entidade da celula no banco de dados var entidade = _svcCelula.GetById(model.id_celula); //faz um backup dos participantes pois o Automapper zera os itens filho que não encontrados var bkp_pessoas = entidade.Pessoas.ToList(); //faz o mapeamento das propriedades Mapper.Map <CelulaViewmodel, Celula>(model, entidade); //retorna alista de pessoas entidade.Pessoas = bkp_pessoas; //executa o update no banco _svcCelula.Update(entidade); //retorna a mensagem de sucesso que será exibida pelo javascript ViewBag.Mensagem = "Item modificado com sucesso"; return(RedirectToAction("Index")); } catch (Exception ex) { //seta mensagem de falha ViewBag.Mensagem = $"Erro ao processar o comando o erro foi: {ex.Message}"; return(View(model)); } }
public async Task <IHttpActionResult> Edit(CelulaViewModel celula) { if (ModelState.IsValid) { var _celulaDomain = await Task.FromResult(Mapper.Map <CelulaViewModel, Celula>(celula)); if (_celulaDomain == null) { return(NotFound()); } else { _celulaApp.Update(_celulaDomain); return(Ok()); } } else { return(BadRequest()); } }