Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
 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));
            }
        }
Beispiel #9
0
 public DownloadFromRestServiceCurriculumVitaeController(
     LattesModule lattesModule,
     LattesDatabase db,
     Channel <CurriculoEntry> curriculumVitaesForDownload,
     Channel <CurriculoEntry> curriculumVitaesForProcess
     )
 {
     _lattesModule = lattesModule;
     _curriculumVitaesForDownload = curriculumVitaesForDownload;
     _curriculumVitaesForProcess  = curriculumVitaesForProcess;
 }
Beispiel #10
0
 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;
 }
Beispiel #13
0
 public LoadCurriculumVitaeNumberFromCSVController(LattesModule lattesModule, string filename, Channel <CurriculoEntry> channel)
 {
     _lattesModule = lattesModule;
     _filename     = filename;
     _channel      = channel;
 }
Beispiel #14
0
 public CurriculumVitaeProcessorController(LattesModule lattesModule, int seq)
 {
     this.lattesModule = lattesModule;
     this._sequence    = seq;
 }
Beispiel #15
0
        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);
 }
Beispiel #17
0
 private DownloadCurriculumVitaeController(LattesModule lattesModule, int sequence)
 {
     this.lattesModule = lattesModule;
     this._sequence    = sequence;
     this.db           = new LattesDatabase();
 }
 public static void LoadQualisTable(LattesModule lattesModule)
 {
     LoadQualisTableCSV(lattesModule);
 }