예제 #1
0
        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);
            }
        }