예제 #1
0
        static void UpdateCompaniesInDatabase(List <ScrappedCompany> companies)
        {
            if (companies == null)
            {
                companies = ScrappedCompany.LoadCompaniesFromFiles(BASICDATA_DIR);
            }

            EmpresaRepository.InsertOrUpdate(companies);
        }
예제 #2
0
        static async Task ExtractFinancialDataAsync(List <ScrappedCompany> companies)
        {
            if (companies == null)
            {
                companies = ScrappedCompany.LoadCompaniesFromFiles(BASICDATA_DIR);
            }

            IEnumerable <ScrappedCompany> filtered = companies;

            // if (Options.Instance.Company > 0)
            // {
            //     filtered = companies.Where(c => c.CodigoCVM == Options.Instance.Company);
            // }

            foreach (var company in filtered)
            {
                await FinancialDataScrapper.ExtractFinancialInfo(company);
            }
        }
예제 #3
0
        static async Task ExtractDocLinksAsync(List <ScrappedCompany> companies)
        {
            if (companies == null)
            {
                companies = ScrappedCompany.LoadCompaniesFromFiles(BASICDATA_DIR);
            }

            int counter = 1;

            foreach (var c in companies)
            {
                bool shouldExtract = true;
                // Só deve extrair os links e/ou sobrepor o arquivo da empresa se a data de atualização(company.UltimaAtualizacao) for
                // maior que a data do arquivo (FileTime)
                // ou se o arquivo não existir

                var info = new FileInfo(c.GetLinksFileName());
                if (info.Exists && info.LastWriteTime > c.UltimaAtualizacao)
                {
                    shouldExtract = false;
                }

                if (!shouldExtract)
                {
                    Console.WriteLine($"Empresa {c.RazaoSocial} não necessita extrair links");
                    log.Info($"Empresa {c.RazaoSocial} não necessita extrair links");
                    continue;
                }

                Console.WriteLine($"Extraindo link da empresa {c.RazaoSocial} -- {counter}/{companies.Count}");
                counter += 1;
                log.Info($"Extraindo link da empresa {c.RazaoSocial}");
                var doclinks = await BvmfDocSummaryScrapper.GetDocsInfoReferences(c);

                //save links for company
                c.SaveDocLinks(doclinks);
            }
        }