public ActionResult Alterar(int? id) { if (!id.HasValue) { throw new ArgumentNullException("Parâmetro id não pode ser nulo."); } Servico servicoEmAlteracao = Contexto.Servicos.SingleOrDefault(s => s.Id == id.Value); var viewModel = new ServicoAlterarViewModel { Id = servicoEmAlteracao.Id, Descricao = servicoEmAlteracao.Descricao, Empresa = servicoEmAlteracao.Empresa, ReferenciaServico = servicoEmAlteracao.ReferenciaServico, TipoServico = servicoEmAlteracao.TipoServico, ServicoRelacionado = servicoEmAlteracao.Pai, Segmento = servicoEmAlteracao.Segmento, TodosOsSegmentos = Contexto.Segmentos.ToList(), TodasAsReferencias = Enum.GetValues(typeof(ReferenciaServico)).Cast<ReferenciaServico>(), TodosOsServicosRelacionados = Contexto.Servicos.ToList() }; return View(viewModel); }
public ActionResult Alterar(ServicoAlterarViewModel viewModel) { try { Servico servicoAlterado = Conversor.ParaServico(viewModel); Servico.ValidarAlteracao(servicoAlterado); Servico.AlterarServico(servicoAlterado); Contexto.SaveChanges(); return View(); } catch (RegrasDeNegocioException e) { e.CopiarPara(ModelState); return View(viewModel); } }