public ActionResult Alterar(AlunoViewModel viewmodel) { ModelState.Remove("matricula"); ModelState.Remove("endereco.cidadeid"); if (ModelState.IsValid) { EnderecoDal serviceEndereco = new EnderecoDal(); var endereco = serviceEndereco.Obter(viewmodel.enderecoid.Value); endereco.cidadeid = viewmodel.endereco.cidadeid; endereco.bairro = viewmodel.endereco.bairro; endereco.logradouro = viewmodel.endereco.logradouro; endereco.numero = viewmodel.endereco.numero; endereco.complemento = viewmodel.endereco.complemento; endereco.cep = RemoveMascara(viewmodel.endereco.cep); serviceEndereco.Alterar(endereco); AlunoDal serviceAluno = new AlunoDal(); var aluno = serviceAluno.Obter(viewmodel.alunoid); aluno.nome = viewmodel.nome; aluno.cpf = RemoveMascara(viewmodel.cpf); aluno.rg = RemoveMascara(viewmodel.rg); aluno.sexo = viewmodel.sexo; aluno.datanascimento = viewmodel.datanascimento; aluno.idade = viewmodel.idade; aluno.telefone = RemoveMascara(viewmodel.telefone); aluno.email = viewmodel.email; aluno.enderecoid = endereco.enderecoid; aluno.dataalteracao = DateTime.Now; aluno.usuarioalteracao = SessaoUsuario.Sessao.nome; serviceAluno.Alterar(aluno); ResponsavelDal serviceResponsavel = new ResponsavelDal(); var responsaveis = serviceResponsavel.ObterVarios(ent => ent.alunoid == aluno.alunoid).ToList(); viewmodel.responsavel.ForEach(responsavel => { var obj = responsaveis.Single(ent => ent.responsavelid == responsavel.responsavelid); obj.nome = responsavel.nome; obj.rg = RemoveMascara(responsavel.rg); obj.cpf = RemoveMascara(responsavel.cpf); obj.profissao = responsavel.profissao; obj.celular = RemoveMascara(responsavel.celular); obj.dataalteracao = DateTime.Now; serviceResponsavel.Alterar(obj); }); return(RedirectToAction("Index", "Aluno")); } else { PrepararViewBags(); return(View(viewmodel)); } }