public ActionResult Visualizar(int id)
        {
            CARSolicitacao    solicitacao            = null;
            List <Protocolos> lstProcessosDocumentos = null;

            if (_bus.ExisteCredenciado(id))
            {
                solicitacao = _bus.ObterCredenciado(id);
            }
            else
            {
                solicitacao            = _bus.ObterInterno(id);
                lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(solicitacao.Protocolo.Id.GetValueOrDefault(0));
            }

            CARSolicitacaoVM vm = new CARSolicitacaoVM(
                solicitacao,
                _busLista.CadastroAmbientalRuralSolicitacaoSituacao,
                lstProcessosDocumentos,
                _busLista.AtividadesSolicitada,
                _bus.ObterDeclarantesLst(solicitacao.Empreendimento.Id),
                isVisualizar: true);

            return(View(vm));
        }
        public ActionResult Visualizar(int id)
        {
            bool existeCredenciado = _bus.ExisteCredenciado(id);

            CARSolicitacao solicitacao    = null;
            CARSolicitacao solicitacaoAux = existeCredenciado ? _busCredenciado.Obter(id) : _bus.Obter(id, false);

            if (solicitacaoAux.SituacaoId != (int)eCARSolicitacaoSituacao.EmCadastro && solicitacaoAux.SituacaoId != (int)eCARSolicitacaoSituacao.Pendente)
            {
                //Obtem ultimo valido, porem mantem a situacao atual
                int situacaoAtual = solicitacaoAux.SituacaoId;

                solicitacao = existeCredenciado ? _busCredenciado.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.Valido) :
                              _bus.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.Valido);
                if (solicitacao.Id <= 0)
                {
                    solicitacao = existeCredenciado ? _busCredenciado.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR) :
                                  _bus.ObterHistoricoPrimeiraSituacao(solicitacaoAux.Id, eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR);
                }

                if (solicitacao.Id <= 0)
                {
                    solicitacao = solicitacaoAux;
                }

                solicitacao.SituacaoId = situacaoAtual;
            }

            #region Configurar

            List <Protocolos> lstProcessosDocumentos = new List <Protocolos>()
            {
                new Protocolos()
                {
                    IsAtivo = true,
                    Id      = solicitacao.ProtocoloSelecionado.Id.ToString() + "@" + (solicitacao.ProtocoloSelecionado.IsProcesso ? 1 : 2) + "@" + solicitacao.Requerimento.Id.ToString(),
                    Texto   = solicitacao.Requerimento.Id.ToString() + " - " + solicitacao.Requerimento.DataCadastroTexto
                }
            };

            List <PessoaLst> lstResponsaveis = new List <PessoaLst>()
            {
                new PessoaLst()
                {
                    IsAtivo = true,
                    Id      = solicitacao.Declarante.Id,
                    Texto   = solicitacao.Declarante.NomeRazaoSocial
                }
            };

            CARSolicitacaoVM vm = new CARSolicitacaoVM(
                solicitacao,
                _busLista.CadastroAmbientalRuralSolicitacaoSituacao,
                lstProcessosDocumentos,
                _busLista.AtividadesSolicitada,
                lstResponsaveis,
                isVisualizar: true);

            vm.IsCredenciado = existeCredenciado;

            #endregion Configurar

            return(View(vm));
        }