internal static void ProcessCurriculumVitaes(LattesModule lattesModule) { List <Thread> threads = new List <Thread>(); int i = 0; CurriculumVitaeProcessorController pcvt = new CurriculumVitaeProcessorController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(pcvt.ThreadRun))); pcvt = new CurriculumVitaeProcessorController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(pcvt.ThreadRun))); pcvt = new CurriculumVitaeProcessorController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(pcvt.ThreadRun))); pcvt = new CurriculumVitaeProcessorController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(pcvt.ThreadRun))); // inicia as threads i = 0; foreach (Thread t in threads) { t.Name = String.Format("Thread {0}", i); t.Start(); } // espera os processos concluirem a execução foreach (Thread t in threads) { t.Join(); } }
public static void DownloadUpdatedCurriculums(LattesModule lattesModule) { List <Thread> threads = new List <Thread>(); // cria n threads para tornar ie download mais performático int i = 0; DownloadCurriculumVitaeController rcvt = new DownloadCurriculumVitaeController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(rcvt.ThreadRun))); rcvt = new DownloadCurriculumVitaeController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(rcvt.ThreadRun))); rcvt = new DownloadCurriculumVitaeController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(rcvt.ThreadRun))); rcvt = new DownloadCurriculumVitaeController(lattesModule, i++); threads.Add(new Thread(new ThreadStart(rcvt.ThreadRun))); // inicia as threads foreach (Thread t in threads) { t.Start(); } // espera os processos concluirem v execução foreach (Thread t in threads) { t.Join(); } }
public LoadCurriculumVitaeNumberFromOleDbController(LattesModule lattesModule, string connectionString, string query, Channel <CurriculoEntry> channel) { _lattesModule = lattesModule; _connectionString = connectionString; _query = query; _channel = channel; }
private static void LoadQualisTableCSV(LattesModule lattesModule) { QualisDAOService dao = new QualisDAOService(new LattesDatabase()); CsvContext cc = new CsvContext(); CsvFileDescription inputFileDescription = new CsvFileDescription { SeparatorChar = ';', FirstLineHasColumnNames = true, FileCultureName = "pt-BR" // default is the current culture }; IEnumerable <QualisCSV> qualisFile = cc.Read <QualisCSV>( new StreamReader(File.Open(lattesModule.QualisFileName, FileMode.Open), Encoding.GetEncoding("iso-8859-15")), inputFileDescription); var qualis = from q in qualisFile select q; dao.CreateQualis("00000000", "Não Informado", "NI", "Não Informado"); foreach (var q in qualis) { dao.CreateQualis(q.ISSN, q.Titulo, q.Extrato, q.AreaAvaliacao); } }
public CurriculumVitaeProcessorController( LattesModule lattesModule, Channel <CurriculoEntry> curriculumVitaeForProcess ) { _lattesModule = lattesModule; _curriculumVitaeForProcess = curriculumVitaeForProcess; }
private static void LoadJCRTableCSV(LattesModule lattesModule) { JCRDAOService dao = new JCRDAOService(new LattesDatabase()); CsvContext cc = new CsvContext(); CsvFileDescription inputFileDescription = new CsvFileDescription { SeparatorChar = ',', FirstLineHasColumnNames = false, EnforceCsvColumnAttribute = true, FileCultureName = "pt-BR" // default is the current culture }; IEnumerable <JCRCSV> jcrFile = cc.Read <JCRCSV>( new StreamReader(File.Open(lattesModule.JCRFileName, FileMode.Open), Encoding.GetEncoding("iso-8859-15")), inputFileDescription); var jcrQuery = from q in jcrFile select q; dao.CreateJCR("00000000", "Não Informado", "Não Informado", 0, null, null, null, null, null, null, null, null, null, null); foreach (var jcr in jcrQuery) { if (jcr.Rank == "Rank" || jcr.Rank.StartsWith("Journal Data Filtered By") || jcr.Rank.StartsWith("Copyright")) { continue; } if (jcr.CitedHalfLife == ">10.0") { jcr.CitedHalfLife = "11.0"; } if (jcr.CitingHalfLife == ">10.0") { jcr.CitingHalfLife = "11.0"; } dao.CreateJCR(jcr.Issn, jcr.FullJournalTitle, jcr.JCRAbbreviatedTitle, ToInt(jcr.Rank), ToInt(jcr.TotalCites), ToNullableDecimal(jcr.JournalImpactFactor), ToNullableDecimal(jcr.ImpactFactorWithoutJournalSelfCites), ToNullableDecimal(jcr.FiveYearImpactFactor), ToNullableDecimal(jcr.ImmediacyIndex), ToNullableInt(jcr.CitableItems), ToNullableDecimal(jcr.EigenfactorScore), ToNullableDecimal(jcr.ArticleInfluenceScore), ToNullableDecimal(jcr.AverageJournalImpactFactorPercentile), ToNullableDecimal(jcr.NormalizedEigenfactor)); } }
public ImportCurriculumVitaeFromFolderController( LattesModule lattesModule, string importFolder, Channel <CurriculoEntry> channel ) { _lattesModule = lattesModule; _importFolder = importFolder; _channel = channel; }
public static void LoadCurriculums(LattesModule lattesModule, string folder) { int read; byte[] buffer = new byte[4096]; MemoryStream ms; CurriculoEntry curriculumVitae; if (!Directory.Exists(folder)) { Logger.Info(String.Format("Pasta de trabalho não foi encontrado ({0})", folder)); return; } bool exists = false; foreach (string filename in Directory.EnumerateFiles(folder)) { exists = true; String numeroCurriculo = filename.Substring(folder.Length + 1); numeroCurriculo = numeroCurriculo.Substring(0, numeroCurriculo.Length - 4); curriculumVitae = new CurriculoEntry { NumeroCurriculo = numeroCurriculo, }; if (File.Exists(lattesModule.GetCurriculumVitaeFileName(curriculumVitae.NumeroCurriculo))) { File.Delete(lattesModule.GetCurriculumVitaeFileName(curriculumVitae.NumeroCurriculo)); } if (filename.EndsWith(".xml")) { File.Copy(filename, lattesModule.GetCurriculumVitaeFileName(curriculumVitae.NumeroCurriculo)); lattesModule.AddCurriculumVitaeForProcess(curriculumVitae); continue; } ms = UnzipCurriculumVitae(filename); FileStream wc = new FileStream(lattesModule.GetCurriculumVitaeFileName(curriculumVitae.NumeroCurriculo), FileMode.CreateNew); while ((read = ms.Read(buffer, 0, buffer.Length)) > 0) { wc.Write(buffer, 0, read); } ms.Close(); lattesModule.AddCurriculumVitaeForProcess(curriculumVitae); } if (exists == false) { throw new Exception(String.Format("Não foram encontrados currículos na pasta {0} !", folder)); } }
public DownloadFromRestServiceCurriculumVitaeController( LattesModule lattesModule, LattesDatabase db, Channel <CurriculoEntry> curriculumVitaesForDownload, Channel <CurriculoEntry> curriculumVitaesForProcess ) { _lattesModule = lattesModule; _curriculumVitaesForDownload = curriculumVitaesForDownload; _curriculumVitaesForProcess = curriculumVitaesForProcess; }
public DownloadFromWebServiceCurriculumVitaeController( LattesModule lattesModule, DownloadCurriculumVitaeWebService downloadCurriculumVitaeService, Channel <CurriculoEntry> curriculumVitaesForDownload, Channel <CurriculoEntry> curriculumVitaesForProcess ) { _lattesModule = lattesModule; _dcvs = downloadCurriculumVitaeService; _curriculumVitaesForDownload = curriculumVitaesForDownload; _curriculumVitaesForProcess = curriculumVitaesForProcess; }
public static void LoadCurriculums(LattesModule lattesModule) { bool exists = false; foreach (string filename in Directory.EnumerateFiles(lattesModule.TempDirectory)) { string numeroCurriculo = filename.Substring(lattesModule.TempDirectory.Length + 1); numeroCurriculo = numeroCurriculo.Substring(0, numeroCurriculo.Length - 4); lattesModule.AddCurriculumVitaeForProcess(new CurriculoEntry { NumeroCurriculo = numeroCurriculo, }); exists = true; } if (exists) { Logger.Info(String.Format("Foram encontrados XMLs pendentes na pasta '{0}' !'", lattesModule.TempDirectory)); return; } }
public LoadFromTempDirectory(LattesModule lattesModule, string tempDirectory, Channel <CurriculoEntry> channel) { _lattesModule = lattesModule; _tempDirectory = tempDirectory; _channel = channel; }
public LoadCurriculumVitaeNumberFromCSVController(LattesModule lattesModule, string filename, Channel <CurriculoEntry> channel) { _lattesModule = lattesModule; _filename = filename; _channel = channel; }
public CurriculumVitaeProcessorController(LattesModule lattesModule, int seq) { this.lattesModule = lattesModule; this._sequence = seq; }
internal static void LoadCurriculumVitaeNumbers(LattesModule lattesModule) { // ler do banco de dados do RM para pegar os profissionais // Criando adaptador que busca todos os registros da planilha DataTable dataTable = new DataTable(); using (OleDbDataAdapter adapter = new OleDbDataAdapter(lattesModule.LattesCurriculumVitaeQuery, lattesModule.LattesCurriculumVitaeODBCConnection)) { CurriculoEntry ce; adapter.Fill(dataTable); foreach (DataRow row in dataTable.Rows) { ce = null; if (dataTable.Columns.Count == 1) { ce = new CurriculoEntry() { NumeroCurriculo = row[dataTable.Columns[0]].ToString().Trim(), }; } else { if (dataTable.Columns.Count == 2) { ce = new CurriculoEntry() { NumeroCurriculo = row[dataTable.Columns[0]].ToString().Trim(), NomeProfessor = row[dataTable.Columns[1]].ToString().Trim(), }; } else { if (dataTable.Columns.Count == 3) { ce = new CurriculoEntry() { NomeProfessor = row[dataTable.Columns[0]].ToString().Trim(), DataNascimento = row[dataTable.Columns[1]].ToString().Trim(), CPF = row[dataTable.Columns[2]].ToString().Trim(), NumeroCurriculo = "", }; } else { if (dataTable.Columns.Count == 4) { ce = new CurriculoEntry() { NumeroCurriculo = row[dataTable.Columns[0]].ToString().Trim(), NomeProfessor = row[dataTable.Columns[1]].ToString().Trim(), DataNascimento = row[dataTable.Columns[2]].ToString().Trim(), CPF = row[dataTable.Columns[3]].ToString().Trim(), }; } } } } if (ce != null && ((ce.NumeroCurriculo != null && ce.NumeroCurriculo.Length > 0) || (ce.NomeProfessor != null && ce.NomeProfessor.Length > 0 && ce.DataNascimento != null && ce.DataNascimento.Length > 0) && ce.CPF != null && ce.CPF.Length > 0)) { lattesModule.AddCurriculumVitaeNumberToDownload(ce); } } } }
public static void LoadJCRTable(LattesModule lattesModule) { LoadJCRTableCSV(lattesModule); }
private DownloadCurriculumVitaeController(LattesModule lattesModule, int sequence) { this.lattesModule = lattesModule; this._sequence = sequence; this.db = new LattesDatabase(); }
public static void LoadQualisTable(LattesModule lattesModule) { LoadQualisTableCSV(lattesModule); }