public bool CopiarDadosCredenciado(Dependencia dependencia, int empreendimentoInternoId, BancoDeDados banco, BancoDeDados bancoCredenciado = null)
        {
            if (banco == null)
            {
                return(false);
            }

            if (_validar == null)
            {
                _validar = new UnidadeProducaoValidar();
            }

            #region Configurar Unidade de Produção

            Cred.UnidadeProducaoBus credenciadoBus = new Cred.UnidadeProducaoBus();
            UnidadeProducao         caracterizacao = credenciadoBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid);

            caracterizacao.Empreendimento.Id = empreendimentoInternoId;
            caracterizacao.CredenciadoID     = caracterizacao.Id;
            caracterizacao.Id  = 0;
            caracterizacao.Tid = string.Empty;
            caracterizacao.UnidadesProducao.SelectMany(u => u.ResponsaveisTecnicos).ToList().ForEach(r => { r.IdRelacionamento = 0; });
            caracterizacao.UnidadesProducao.SelectMany(u => u.Produtores).ToList().ForEach(p => {
                p.Id = _busCaracterizacao.ObterPessoaID(p.CpfCnpj, banco);
                p.IdRelacionamento = 0;
            });

            #endregion

            if (_validar.CopiarDadosCredenciado(caracterizacao))
            {
                GerenciadorTransacao.ObterIDAtual();

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

                    //Setar ID
                    caracterizacao.Id = ObterPorEmpreendimento(empreendimentoInternoId, simplificado: true, banco: bancoDeDados).Id;

                    _da.CopiarDadosCredenciado(caracterizacao, bancoDeDados);

                    credenciadoBus.AtualizarInternoIdTid(caracterizacao.CredenciadoID, caracterizacao.Id, GerenciadorTransacao.ObterIDAtual(), bancoCredenciado);

                    bancoDeDados.Commit();
                }
            }

            return(Validacao.EhValido);
        }
 public UnidadeProducaoBus()
 {
     _validar = new UnidadeProducaoValidar();
 }