Beispiel #1
0
        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();
                }
            }
        }