Exemplo n.º 1
0
        public void Initialize(long idSeedHistory)
        {
            IdSeedHistory = idSeedHistory;

            EsferaAdministrativaStaging = new DIM_EsferaAdministrativaStaging
            {
                Codigo = CodigoEsferaAdministrativa,
                Nome   = NomeEsferaAdministrativa
            };

            PeriodoStaging = DIM_PeriodoStaging.GetMensal();

            TempoStaging = new DIM_TempoStaging
            {
                Ano = Ano,
                Mes = Mes
            };

            UnidadeGestoraStaging = new DIM_UnidadeGestoraStaging
            {
                Codigo                   = CodigoUnidadeGestora,
                CodigoOriginal           = CodigoOriginalUnidadeGestora,
                CodigoPoder              = CodigoPoderUnidadeGestora,
                CodigoTipoUnidadeGestora = CodigoTipoUnidadeGestora,
                Nome      = NomeUnidadeGestora,
                NomePoder = NomePoderUnidadeGestora,
                NomeTipoUnidadeGestora = NomeTipoUnidadeGestora
            };
        }
Exemplo n.º 2
0
        public IEnumerable <FT_PrestacaoContaMensalStaging> Save(IEnumerable <FT_PrestacaoContaMensalStaging> rows, IObserver <AddRangeObserverResult> observer = default)
        {
            observer.OnNext(new AddRangeObserverResult
            {
                Metadata = new HashSet <string> {
                    "info:Processing dimensions"
                }
            });

            var tempos = rows.Select(o => o.TempoStaging);

            tempos = new DIM_TempoStaging().Save(tempos);

            var periodos = new[] { PeriodoStaging }.AsEnumerable();

            periodos = new DIM_PeriodoStaging().Save(periodos);

            var unidadesGestoras = rows.Select(o => o.UnidadeGestoraStaging);

            unidadesGestoras = new DIM_UnidadeGestoraStaging().Save(unidadesGestoras);

            var esferasAdministrativas = rows.Select(o => o.EsferaAdministrativaStaging);

            esferasAdministrativas = new DIM_EsferaAdministrativaStaging().Save(esferasAdministrativas);

            using (var dbContext = Settings.ServiceProvider.GetService <DWControleSocialContext>())
            {
                var precisamSalvar = (
                    from row in rows
                    join ea in esferasAdministrativas on row.EsferaAdministrativaStaging.CodigoComparacao equals ea.CodigoComparacao
                    join pe in periodos on row.PeriodoStaging.CodigoComparacao equals pe.CodigoComparacao
                    join te in tempos on row.TempoStaging.CodigoComparacao equals te.CodigoComparacao
                    join ug in unidadesGestoras on row.UnidadeGestoraStaging.CodigoComparacao equals ug.CodigoComparacao
                    select new FT_PrestacaoContaMensal
                {
                    DataHomologacao = row.DataHomologacao,
                    DataLimite = row.DataLimite,
                    IdEsferaAdministrativa = ea.Id,
                    IdPeriodo = pe.Id,
                    IdSeedHistory = IdSeedHistory,
                    IdTempo = te.Id,
                    IdUnidadeGestora = ug.Id
                })
                                     .ToList();

                observer.OnNext(new AddRangeObserverResult
                {
                    Metadata = new HashSet <string> {
                        "info:Processing facts"
                    }
                });

                precisamSalvar.InsertMerge
                (
                    () => Settings.ServiceProvider.GetService <DWControleSocialContext>(),
                    o => o.Id,
                    GetCodigoComparacao,
                    observer,
                    o => new
                {
                    o.DataHomologacao
                }
                );
            }
            return(rows);
        }
        public IEnumerable <FT_ReceitaDotacaoMunicipioStaging> Save(IEnumerable <FT_ReceitaDotacaoMunicipioStaging> rows, IObserver <AddRangeObserverResult> observer = default)
        {
            observer.OnNext(new AddRangeObserverResult
            {
                Id       = "teste",
                Metadata = new HashSet <string> {
                    "info:Processing dimensions"
                }
            });
            observer.OnCompleted();

            var tempos = rows.Select(o => o.TempoStaging);

            tempos = new DIM_TempoStaging().Save(tempos);

            var periodos = new[] { PeriodoStaging }.AsEnumerable();

            periodos = new DIM_PeriodoStaging().Save(periodos);

            var unidadesGestoras = rows.Select(o => o.UnidadeGestoraStaging);

            unidadesGestoras = new DIM_UnidadeGestoraStaging().Save(unidadesGestoras);

            var esferasAdministrativas = rows.Select(o => o.EsferaAdministrativaStaging);

            esferasAdministrativas = new DIM_EsferaAdministrativaStaging().Save(esferasAdministrativas);

            var classificacoesFontesRecursos = rows.Select(o => o.ClassificacaoFonteRecursoStaging);

            classificacoesFontesRecursos = new DIM_ClassificacaoFonteERecursoStaging().Save(classificacoesFontesRecursos);

            var classificacoesNaturezas = rows.Select(o => o.ClassificacaoNaturezaStaging);

            classificacoesNaturezas = new DIM_ClassificacaoReceitaDotacaoMunicipioStaging().Save(classificacoesNaturezas);

            var precisamSalvar = (
                from row in rows
                join cfr in classificacoesFontesRecursos on row.ClassificacaoFonteRecursoStaging.CodigoComparacao equals cfr.CodigoComparacao
                join cfn in classificacoesNaturezas on row.ClassificacaoNaturezaStaging.CodigoComparacao equals cfn.CodigoComparacao
                join ea in esferasAdministrativas on row.EsferaAdministrativaStaging.CodigoComparacao equals ea.CodigoComparacao
                join pe in periodos on row.PeriodoStaging.CodigoComparacao equals pe.CodigoComparacao
                join te in tempos on row.TempoStaging.CodigoComparacao equals te.CodigoComparacao
                join ug in unidadesGestoras on row.UnidadeGestoraStaging.CodigoComparacao equals ug.CodigoComparacao
                select new FT_ReceitaDotacaoMunicipio
            {
                Arrecadada = row.Arrecadada,
                ArrecadadaFUNDEB = row.ArrecadadaFUNDEB,
                IdClassificacaoFonteRecurso = cfr.Id,
                IdClassificacaoNatureza = cfn.Id,
                IdEsferaAdministrativa = ea.Id,
                IdOriginal = row.IdOriginal,
                IdPeriodo = pe.Id,
                IdSeedHistory = IdSeedHistory,
                IdTempo = te.Id,
                IdUnidadeGestora = ug.Id,
                PrevisaoAtualizada = row.PrevisaoAtualizada,
                PrevisaoAtualizadaFUNDEB = row.PrevisaoAtualizadaFUNDEB,
                PrevisaoInicial = row.PrevisaoInicial,
                PrevisaoInicialFUNDEB = row.PrevisaoInicialFUNDEB
            })
                                 .ToList();

            observer.OnNext(new AddRangeObserverResult
            {
                Metadata = new HashSet <string> {
                    "info:Processing facts"
                }
            });

            precisamSalvar.InsertMerge(() => Settings.ServiceProvider.GetService <DWControleSocialContext>(), o => o.Id, o => o.IdOriginal.ToString(), observer);
            return(rows);
        }
        public void Initialize(long idSeedHistory)
        {
            IdSeedHistory = idSeedHistory;

            ClassificacaoFonteRecursoStaging = new DIM_ClassificacaoFonteERecursoStaging
            {
                CodigoCompleto       = CodigoCompletoFonteERecurso?.ToUpperRemovingBreaklines(),
                CodigoUnidadeGestora = CodigoUnidadeGestora,

                CodigoDetalhamento  = CodigoDetalhamentoFonteERecurso?.ToUpperRemovingBreaklines(),
                CodigoFonteReduzida = CodigoFonteReduzidaFonteERecurso?.ToUpperRemovingBreaklines(),
                CodigoGrupo         = CodigoGrupoFonteERecurso?.ToUpperRemovingBreaklines(),

                NomeDetalhamento  = NomeDetalhamentoFonteERecurso?.ToUpperRemovingBreaklines(),
                NomeFonteReduzida = NomeFonteReduzidaFonteERecurso?.ToUpperRemovingBreaklines(),
                NomeGrupo         = NomeGrupoFonteERecurso?.ToUpperRemovingBreaklines()
            };

            ClassificacaoNaturezaStaging = new DIM_ClassificacaoReceitaDotacaoMunicipioStaging
            {
                CodigoCompleto = CodigoCompletoNatureza?.ToUpperRemovingBreaklines(),

                CodigoCategoria          = CodigoCategoriaNatureza?.ToUpperRemovingBreaklines(),
                CodigoOrigem             = CodigoOrigemNatureza?.ToUpperRemovingBreaklines(),
                CodigoEspecie            = CodigoEspecieNatureza?.ToUpperRemovingBreaklines(),
                CodigoRubrica            = CodigoRubricaNatureza?.ToUpperRemovingBreaklines(),
                CodigoAlinea             = CodigoAlineaNatureza?.ToUpperRemovingBreaklines(),
                CodigoSubAlinea          = CodigoSubAlineaNatureza?.ToUpperRemovingBreaklines(),
                CodigoDetalhamentoNivel1 = CodigoDetalhamentoNivel1Natureza?.ToUpperRemovingBreaklines(),
                CodigoDetalhamentoNivel2 = CodigoDetalhamentoNivel2Natureza?.ToUpperRemovingBreaklines(),
                CodigoDetalhamentoNivel3 = CodigoDetalhamentoNivel3Natureza?.ToUpperRemovingBreaklines(),
                CodigoTipoDetalhamento   = CodigoTipoDetalhamentoNatureza?.ToUpperRemovingBreaklines(),

                NomeCategoria          = NomeCategoriaNatureza?.ToUpperRemovingBreaklines(),
                NomeOrigem             = NomeOrigemNatureza?.ToUpperRemovingBreaklines(),
                NomeEspecie            = NomeEspecieNatureza?.ToUpperRemovingBreaklines(),
                NomeRubrica            = NomeRubricaNatureza?.ToUpperRemovingBreaklines(),
                NomeAlinea             = NomeAlineaNatureza?.ToUpperRemovingBreaklines(),
                NomeSubAlinea          = NomeSubAlineaNatureza?.ToUpperRemovingBreaklines(),
                NomeDetalhamentoNivel1 = NomeDetalhamentoNivel1Natureza?.ToUpperRemovingBreaklines(),
                NomeDetalhamentoNivel2 = NomeDetalhamentoNivel2Natureza?.ToUpperRemovingBreaklines(),
                NomeDetalhamentoNivel3 = NomeDetalhamentoNivel3Natureza?.ToUpperRemovingBreaklines(),
                NomeTipoDetalhamento   = NomeTipoDetalhamentoNatureza?.ToUpperRemovingBreaklines()
            };

            EsferaAdministrativaStaging = new DIM_EsferaAdministrativaStaging
            {
                Codigo = CodigoEsferaAdministrativa,
                Nome   = NomeEsferaAdministrativa
            };

            PeriodoStaging = DIM_PeriodoStaging.GetMensal();

            TempoStaging = new DIM_TempoStaging
            {
                Ano = Ano,
                Mes = Mes
            };

            UnidadeGestoraStaging = new DIM_UnidadeGestoraStaging
            {
                Codigo                   = CodigoUnidadeGestora,
                CodigoOriginal           = CodigoOriginalUnidadeGestora,
                CodigoPoder              = CodigoPoderUnidadeGestora,
                CodigoTipoUnidadeGestora = CodigoTipoUnidadeGestora,
                Nome      = NomeUnidadeGestora,
                NomePoder = NomePoderUnidadeGestora,
                NomeTipoUnidadeGestora = NomeTipoUnidadeGestora
            };
        }
        public IEnumerable<FT_DespesaDotacaoMunicipioStaging> Save(IEnumerable<FT_DespesaDotacaoMunicipioStaging> rows, IObserver<AddRangeObserverResult> observer = default)
        {
            observer.OnNext(new AddRangeObserverResult
            {
                Metadata = new HashSet<string> { "info:Processing dimensions" }
            });

            var tempos = rows.Select(o => o.TempoStaging);
            tempos = new DIM_TempoStaging().Save(tempos);

            var periodos = new[] { PeriodoStaging }.AsEnumerable();
            periodos = new DIM_PeriodoStaging().Save(periodos);

            var unidadesGestoras = rows.Select(o => o.UnidadeGestoraStaging);
            unidadesGestoras = new DIM_UnidadeGestoraStaging().Save(unidadesGestoras);

            var esferasAdministrativas = rows.Select(o => o.EsferaAdministrativaStaging);
            esferasAdministrativas = new DIM_EsferaAdministrativaStaging().Save(esferasAdministrativas);

            var classificacoesNaturezas = rows.Select(o => o.ClassificacaoNaturezaStaging);
            classificacoesNaturezas = new DIM_ClassificacaoDespesaDotacaoMunicipioStaging().Save(classificacoesNaturezas);

            var classificacoesFontesRecursos = rows.Select(o => o.ClassificacaoFonteERecursoStaging);
            classificacoesFontesRecursos = new DIM_ClassificacaoFonteERecursoStaging().Save(classificacoesFontesRecursos);

            var classificacoesFuncaoSubFuncao = rows.Select(o => o.ClassificacaoFuncaoESubFuncaoStaging);
            classificacoesFuncaoSubFuncao = new DIM_ClassificacaoFuncaoESubFuncaoStaging().Save(classificacoesFuncaoSubFuncao);

            var classificacoesOrgaoEUnidadeOrcamentaria = rows.Select(o => o.ClassificacaoOrgaoEUnidadeOrcamentariaStaging);
            classificacoesOrgaoEUnidadeOrcamentaria = new DIM_ClassificacaoOrgaoEUnidadeOrcamentariaStaging().Save(classificacoesOrgaoEUnidadeOrcamentaria);

            var classificacoesProgramaAcao = rows.Select(o => o.ClassificacaoProgramaEAcaoStaging);
            classificacoesProgramaAcao = new DIM_ClassificacaoProgramaEAcaoStaging().Save(classificacoesProgramaAcao);

            var precisamSalvar = (
                    from row in rows
                    join cfr in classificacoesFontesRecursos on row.ClassificacaoFonteERecursoStaging.CodigoComparacao equals cfr.CodigoComparacao
                    join cfn in classificacoesNaturezas on row.ClassificacaoNaturezaStaging.CodigoComparacao equals cfn.CodigoComparacao
                    join cff in classificacoesFuncaoSubFuncao on row.ClassificacaoFuncaoESubFuncaoStaging.CodigoComparacao equals cff.CodigoComparacao
                    join cfo in classificacoesOrgaoEUnidadeOrcamentaria on row.ClassificacaoOrgaoEUnidadeOrcamentariaStaging.CodigoComparacao equals cfo.CodigoComparacao
                    join cfp in classificacoesProgramaAcao on row.ClassificacaoProgramaEAcaoStaging.CodigoComparacao equals cfp.CodigoComparacao
                    join ea in esferasAdministrativas on row.EsferaAdministrativaStaging.CodigoComparacao equals ea.CodigoComparacao
                    join pe in periodos on row.PeriodoStaging.CodigoComparacao equals pe.CodigoComparacao
                    join te in tempos on row.TempoStaging.CodigoComparacao equals te.CodigoComparacao
                    join ug in unidadesGestoras on row.UnidadeGestoraStaging.CodigoComparacao equals ug.CodigoComparacao
                    select new FT_DespesaDotacaoMunicipio
                    {
                        Empenhada = row.Empenhada,
                        IdClassificacaoNatureza = cfn.Id,
                        IdClassificacaoFonteRecurso = cfr.Id,
                        IdClassificacaoFuncional = cff.Id,
                        IdClassificacaoOrcamentaria = cfo.Id,
                        IdClassificacaoPrograma = cfp.Id,
                        IdEsferaAdministrativa = ea.Id,
                        IdOriginal = row.IdOriginal,
                        IdPeriodo = pe.Id,
                        IdSeedHistory = IdSeedHistory,
                        IdTempo = te.Id,
                        IdUnidadeGestora = ug.Id,
                        Liquidada = row.Liquidada,
                        Paga = row.Paga,
                        PrevisaoAtualizada = row.PrevisaoAtualizada,
                        PrevisaoInicial = row.PrevisaoInicial
                    })
                    .ToList();

            observer.OnNext(new AddRangeObserverResult
            {
                Metadata = new HashSet<string> { "info:Processing facts" }
            });

            precisamSalvar.InsertMerge(() => Settings.ServiceProvider.GetService<DWControleSocialContext>(), o => o.Id, o => o.IdOriginal, observer);
            return rows;
        }
        public void Initialize(long idSeedHistory)
        {
            IdSeedHistory = idSeedHistory;

            ClassificacaoNaturezaStaging = new DIM_ClassificacaoDespesaDotacaoMunicipioStaging
            {
                CodigoCompleto = CodigoCompletoNatureza?.ToUpperRemovingBreaklines(),

                CodigoCategoria = CodigoCategoriaNatureza?.ToUpperRemovingBreaklines(),
                CodigoGrupo = CodigoGrupoNatureza?.ToUpperRemovingBreaklines(),
                CodigoModalidade = CodigoModalidadeNatureza?.ToUpperRemovingBreaklines(),
                CodigoElemento = CodigoElementoNatureza?.ToUpperRemovingBreaklines(),
                CodigoSubElemento = CodigoSubElementoNatureza?.ToUpperRemovingBreaklines(),

                NomeCategoria = NomeCategoriaNatureza?.ToUpperRemovingBreaklines(),
                NomeGrupo = NomeGrupoNatureza?.ToUpperRemovingBreaklines(),
                NomeModalidade = NomeModalidadeNatureza?.ToUpperRemovingBreaklines(),
                NomeElemento = NomeElementoNatureza?.ToUpperRemovingBreaklines(),
                NomeSubElemento = NomeSubElementoNatureza?.ToUpperRemovingBreaklines()
            };

            ClassificacaoFonteERecursoStaging = new DIM_ClassificacaoFonteERecursoStaging
            {
                CodigoCompleto = CodigoCompletoFonteERecurso?.ToUpperRemovingBreaklines(),
                CodigoUnidadeGestora = CodigoUnidadeGestora,

                CodigoDetalhamento = CodigoDetalhamentoFonteERecurso?.ToUpperRemovingBreaklines(),
                CodigoFonteReduzida = CodigoEspecificacaoFonteERecurso?.ToUpperRemovingBreaklines(),
                CodigoGrupo = CodigoGrupoFonteERecurso?.ToUpperRemovingBreaklines(),

                NomeDetalhamento = NomeDetalhamentoFonteERecurso?.ToUpperRemovingBreaklines(),
                NomeFonteReduzida = NomeEspecificacaoFonteERecurso?.ToUpperRemovingBreaklines(),
                NomeGrupo = NomeGrupoFonteERecurso?.ToUpperRemovingBreaklines()
            };

            ClassificacaoFuncaoESubFuncaoStaging = new DIM_ClassificacaoFuncaoESubFuncaoStaging
            {
                CodigoFuncao = CodigoFuncaoFuncaoESubFuncao?.ToUpperRemovingBreaklines(),
                CodigoSubFuncao = CodigoSubFuncaoFuncaoESubFuncao?.ToUpperRemovingBreaklines(),
                NomeFuncao = NomeFuncaoFuncaoESubFuncao?.ToUpperRemovingBreaklines(),
                NomeSubFuncao = NomeSubFuncaoFuncaoESubFuncao?.ToUpperRemovingBreaklines()
            };

            ClassificacaoOrgaoEUnidadeOrcamentariaStaging = new DIM_ClassificacaoOrgaoEUnidadeOrcamentariaStaging
            {
                CodigoOrgao = CodigoOrgaoOrgaoEUnidadeOrcamentaria?.ToUpperRemovingBreaklines(),
                CodigoUnidadeGestora = CodigoUnidadeGestora,
                CodigoUnidadeOrcamentaria = CodigoUnidadeOrcamentariaOrgaoEUnidadeOrcamentaria?.ToUpperRemovingBreaklines(),
                NomeOrgao = NomeOrgaoOrgaoEUnidadeOrcamentaria?.ToUpperRemovingBreaklines(),
                NomeUnidadeOrcamentaria = NomeUnidadeOrcamentariaOrgaoEUnidadeOrcamentaria?.ToUpperRemovingBreaklines()
            };

            ClassificacaoProgramaEAcaoStaging = new DIM_ClassificacaoProgramaEAcaoStaging
            {
                CodigoAcao = CodigoAcaoProgramaEAcao?.ToUpperRemovingBreaklines(),
                CodigoPrograma = CodigoProgramaProgramaEAcao?.ToUpperRemovingBreaklines(),
                CodigoUnidadeGestora = CodigoUnidadeGestora,
                NomeAcao = NomeAcaoProgramaEAcao?.ToUpperRemovingBreaklines(),
                NomePrograma = NomeProgramaProgramaEAcao?.ToUpperRemovingBreaklines()
            };

            EsferaAdministrativaStaging = new DIM_EsferaAdministrativaStaging
            {
                Codigo = CodigoEsferaAdministrativa,
                Nome = NomeEsferaAdministrativa
            };

            PeriodoStaging = DIM_PeriodoStaging.GetMensal();

            TempoStaging = new DIM_TempoStaging
            {
                Ano = Ano,
                Mes = Mes
            };

            UnidadeGestoraStaging = new DIM_UnidadeGestoraStaging
            {
                Codigo = CodigoUnidadeGestora,
                CodigoOriginal = CodigoOriginalUnidadeGestora,
                CodigoPoder = CodigoPoderUnidadeGestora,
                CodigoTipoUnidadeGestora = CodigoTipoUnidadeGestora,
                Nome = NomeUnidadeGestora,
                NomePoder = NomePoderUnidadeGestora,
                NomeTipoUnidadeGestora = NomeTipoUnidadeGestora,
            };
        }