public void CopiarDadosCredenciado(Dependencia dependencia, int empreendimentoInternoID, BancoDeDados banco, BancoDeDados bancoCredenciado) { if (banco == null) { return; } #region Configurar Projeto //Obter do Credenciado Cred.ModuloProjetoGeografico.Bussiness.ProjetoGeograficoBus projetoGeoCredBus = new Cred.ModuloProjetoGeografico.Bussiness.ProjetoGeograficoBus(); ProjetoGeografico projetoGeo = projetoGeoCredBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid); eCaracterizacao caracterizacaoTipo = (eCaracterizacao)dependencia.DependenciaCaracterizacao; int projetoGeoCredenciadoId = projetoGeo.Id; int empreendimentoCredenciadoId = projetoGeo.EmpreendimentoId; bool atualizarDependencias = (!Desatualizado(projetoGeo.InternoID, projetoGeo.InternoTID) && !projetoGeo.AlteradoCopiar); #endregion if (_validar.CopiarDadosCredenciado(projetoGeo)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); _da.CopiarDadosCredenciado(projetoGeo, empreendimentoInternoID, bancoDeDados); projetoGeoCredBus.AtualizarInternoIdTid( empreendimentoCredenciadoId, projetoGeoCredenciadoId, (eCaracterizacao)projetoGeo.CaracterizacaoId, projetoGeo.Id, GerenciadorTransacao.ObterIDAtual(), bancoCredenciado); #region Arquivo ArquivoBus _busArquivoInterno = new ArquivoBus(eExecutorTipo.Interno); ArquivoBus _busArquivoCredenciado = new ArquivoBus(eExecutorTipo.Credenciado); foreach (var item in projetoGeo.Arquivos) { Arquivo aux = _busArquivoCredenciado.Obter(item.Id.Value); //Obtém o arquivo completo do diretorio do credenciado(nome, buffer, etc) aux.Id = 0; //Zera o ID aux = _busArquivoInterno.SalvarTemp(aux); //salva no diretório temporário aux = _busArquivoInterno.Copiar(aux); //Copia para o diretório oficial //Salvar na Oficial ArquivoDa arquivoDa = new ArquivoDa(); arquivoDa.Salvar(aux, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); item.Id = aux.Id; } _da.SalvarArquivosCredenciado(projetoGeo, bancoDeDados); #endregion #region Histórico HistCaract.Historico historico = new HistCaract.Historico(); historico.Gerar(projetoGeo.Id, eHistoricoArtefatoCaracterizacao.projetogeografico, eHistoricoAcao.importar, bancoDeDados); historico.GerarGeo(projetoGeo.Id, eHistoricoArtefatoCaracterizacao.projetogeografico, eHistoricoAcao.importar, bancoDeDados); #endregion #region Dependencias //Gerencia as dependências projetoGeo.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(empreendimentoInternoID, caracterizacaoTipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico); _caracterizacaoBus.Dependencias(new Caracterizacao() { Id = projetoGeo.Id, Tipo = caracterizacaoTipo, DependenteTipo = eCaracterizacaoDependenciaTipo.ProjetoGeografico, Dependencias = projetoGeo.Dependencias }, bancoDeDados); if (projetoGeo.InternoID > 0) { if (atualizarDependencias) { CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus(); caracterizacaoBus.AtualizarDependentes(projetoGeo.InternoID, caracterizacaoTipo, eCaracterizacaoDependenciaTipo.ProjetoGeografico, projetoGeo.Tid, bancoDeDados); } } #endregion bancoDeDados.Commit(); } } }