static void UpdateCompaniesInDatabase(List <ScrappedCompany> companies) { if (companies == null) { companies = ScrappedCompany.LoadCompaniesFromFiles(BASICDATA_DIR); } EmpresaRepository.InsertOrUpdate(companies); }
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); } }
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); } }