Пример #1
0
        private static void compararGabineteDoacoes()
        {
            Console.WriteLine("Abrindo bancos");
            SqliteDB dbGabinete = new SqliteDB("gabinete_camara.db");
            SqliteDB dbDoacoes  = new SqliteDB("doacoes_2020.db");

            Console.WriteLine("Selecionando doadores");
            var modelDoacoes = dbDoacoes.ExecuteQuery <Robops.Lib.TSE.Contas.ReceitasModel>("SELECT * FROM ReceitasModel WHERE length(DocumentoDoador) = 11 ", null)
                               .Where(o => o.Ano == 2020)
                               .OrderBy(o => o.NomeDoadorRFB)
                               .ToArray();

            Console.WriteLine("Selecionando pessoal");
            var gabinete = dbGabinete.GetAll <PessoalModel>()
                           .ToArray();
            var hashNomesGabinete = gabinete.Select(o => o.NomeFuncionario.ToUpper())
                                    .ToHashSet();

            var deputados = dbGabinete.GetAll <Robops.Lib.Camara.Leg.Deputado>()
                            .ToDictionary(d => d.Id);

            Console.WriteLine("Executando busca");
            foreach (var doador in modelDoacoes)
            {
                if (!hashNomesGabinete.Contains(doador.NomeDoadorRFB.ToUpper()))
                {
                    continue;
                }

                var gab = gabinete.First(g => g.NomeFuncionario.ToUpper() == doador.NomeDoadorRFB.ToUpper());
                // ele pode doar para si mesmo
                if (gab.NomeFuncionario.ToUpper() == doador.NomeCandidato.ToUpper())
                {
                    continue;
                }

                string fileName = "doadores.csv";
                var    deputado = deputados[gab.IdDeputado];

                if (deputado.NomeCivil.ToUpper() == doador.NomeCandidato.ToUpper())
                {
                    fileName = "doadores_pingPong.csv";
                }
                else
                {
                    fileName = "doadores_gramaVizinho.csv";
                }

                string text = $"{doador.NomeDoadorRFB.ToUpper()};{gab.NomeDeputado.ToUpper()};{deputado.PartidoLideranca};{doador.NomeCandidato.ToUpper()};{doador.NumeroCandidato};{gab.InicioExercicio:d} - {gab.FimExercicio:d}\r\n";
                Console.WriteLine(text);
                File.AppendAllText(fileName, text);
            }
        }