public Requerimento Importar(Requerimento requerimento)
        {
            try
            {
                RequerimentoCredenciadoBus busRequerimentoCredenciado = new RequerimentoCredenciadoBus();
                var credenciado = busRequerimentoCredenciado.Obter(requerimento.Id, true);
                credenciado.SetorId = requerimento.SetorId;

                credenciado.Empreendimento.SelecaoTipo = (int)eExecutorTipo.Credenciado;
                credenciado.Pessoas.ForEach(p =>
                {
                    p.SelecaoTipo = (int)eExecutorTipo.Credenciado;
                });

                List <Pessoa> pessoasRelacionadas = ObterPessoasRelacionadas(credenciado);

                if (_validar.Importar(credenciado, pessoasRelacionadas))
                {
                    credenciado.IsCredenciado = true;
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        credenciado = ImportarPessoas(credenciado, pessoasRelacionadas, bancoDeDados);

                        if (!Validacao.EhValido)
                        {
                            bancoDeDados.Rollback();
                            return(requerimento);
                        }

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            if (credenciado.Empreendimento.Id > 0)
                            {
                                credenciado = ImportarEmpreendimento(credenciado, bancoDeDados, bancoDeDadosCredenciado);
                            }

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(requerimento);
                            }

                            _da.Importar(credenciado, bancoDeDados);

                            _busProjetoDigitalCredenciado.AlterarEtapaTemporario(requerimento.ProjetoDigitalId, eProjetoDigitalEtapaImportacao.Caracterizacao, bancoDeDados);

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(requerimento);
                            }

                            busRequerimentoCredenciado.AlterarSituacao(new Requerimento()
                            {
                                Id = credenciado.Id, SituacaoId = (int)eRequerimentoSituacao.Importado
                            }, bancoDeDadosCredenciado);

                            AlterarSituacao(credenciado.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado);

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(requerimento);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        bancoDeDados.Commit();
                        Validacao.Add(Mensagem.ProjetoDigital.RequerimentoImportado(requerimento.Numero.ToString()));
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(requerimento);
        }