private ChecagemRoteiro AtualizarItensRoteiro(ChecagemRoteiro check)
        {
            try
            {
                for (int i = 0; i < check.Roteiros.Count; i++)
                {
                    List <Item> itensRoteiroAtual = null;
                    Roteiro     roteiro           = null;

                    //Busca o tid de quando o roteiro foi associado
                    string tidDeRelacao = check.Roteiros[i].Tid.Clone().ToString();

                    if (check.Roteiros[i].Situacao.Equals(2))
                    {
                        Validacao.Add(Mensagem.ChecagemRoteiro.RoteiroDesativado(check.Roteiros[i].Numero, eTipoMensagem.Informacao));
                    }

                    //Buscar o roteiro atual
                    roteiro = _busRoteiro.ObterSimplificado(check.Roteiros[i].Id);

                    if (!_busRoteiro.VerificarTidAtual(check.Roteiros[i].Id, tidDeRelacao))
                    {
                        Validacao.Add(Mensagem.ChecagemRoteiro.RoteiroAtualizado(roteiro.Numero, roteiro.Versao.ToString()));
                        int idRelacao = (check.Roteiros[i].IdRelacionamento ?? 0);
                        check.Roteiros[i] = roteiro;
                        check.Roteiros[i].IdRelacionamento = idRelacao;
                    }

                    itensRoteiroAtual = roteiro.Itens;

                    for (int j = 0; j < itensRoteiroAtual.Count; j++)
                    {
                        bool isNew = true;

                        for (int k = 0; k < check.Itens.Count; k++)
                        {
                            if (check.Itens[k].Id == itensRoteiroAtual[j].Id)
                            {
                                if (!check.Itens[k].Tid.Equals(itensRoteiroAtual[j].Tid, StringComparison.InvariantCultureIgnoreCase))
                                {
                                    List <int> lstRoteiros = check.Itens[k].Roteiros;
                                    lstRoteiros.Add(check.Roteiros[i].Id);
                                    check.Itens[k]          = itensRoteiroAtual[j];
                                    check.Itens[k].Roteiros = lstRoteiros;
                                }
                                else
                                {
                                    check.Itens[k].Roteiros.Add(check.Roteiros[i].Id);
                                }

                                isNew = false;
                                break;
                            }
                        }
                        if (isNew)
                        {
                            itensRoteiroAtual[j].Roteiros.Add(check.Roteiros[i].Id);
                            itensRoteiroAtual[j].Situacao      = (int)eChecagemItemSituacao.Pendente;
                            itensRoteiroAtual[j].SituacaoTexto = eChecagemItemSituacao.Pendente.ToString();
                            check.Itens.Add(itensRoteiroAtual[j]);
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(check);
        }