public void AtualizarAnalise(AnaliseItem analise) { try { List <Roteiro> roteirosAtuais = _busRoteiro.ObterRoteirosAtuais(analise); //Atualiza o TID do roteiro da análise com o TID do roteiro atual roteirosAtuais.ForEach(atual => { analise.Roteiros.SingleOrDefault(rot => rot.Id == atual.Id).Tid = atual.Tid; }); //Atualiza o TID do item da análise com o TID do item atual List <Item> itens = roteirosAtuais.SelectMany(item => item.Itens).ToList(); Item aux = null; itens.ForEach(atual => { aux = analise.Itens.SingleOrDefault(x => x.Id == atual.Id); if (aux != null) { if (aux.Tid != atual.Tid && aux.Situacao != (int)eAnaliseItemSituacao.Dispensado) { aux.Editado = true; aux.Situacao = (int)eAnaliseItemSituacao.Recebido; aux.Recebido = true; aux.SituacaoTexto = _busLista.SituacoesItemAnalise.Find(x => x.Id == (int)eAnaliseItemSituacao.Recebido).Texto; aux.Motivo = String.Empty; } aux.Nome = atual.Nome; aux.Condicionante = atual.Condicionante; aux.Tid = atual.Tid; } else { atual.Motivo = string.Empty; atual.Editado = true; atual.Situacao = (int)eAnaliseItemSituacao.Pendente; atual.SituacaoTexto = _busLista.SituacoesItemAnalise.Find(x => x.Id == (int)eAnaliseItemSituacao.Pendente).Texto; analise.Itens.Add(atual); } }); } catch (Exception exc) { Validacao.AddErro(exc); } }