private static List <Publicacao> MontarPublicacoes(DataTable dtResultado)
        {
            var        publicacoes = new List <Publicacao>();
            Publicacao publicacao;

            foreach (DataRow dr in dtResultado.Rows)
            {
                publicacao = new Publicacao
                {
                    CodigoPublicacao = Convert.ToInt32(dr["CodigoPublicacao"].ToString()),
                    Title            = dr["Title"].ToString(),
                    Year             = Convert.ToInt32(dr["Year"].ToString()),
                    SourceTitle      = dr["SourceTitle"].ToString(),
                    CitedBy          = dr["CitedBy"].ToString(),
                    DOI            = dr["DOI"].ToString(),
                    Link           = dr["Link"].ToString(),
                    EID            = dr["EID"].ToString(),
                    Abstract       = dr["Abstract"].ToString(),
                    AuthorKeywords = dr["AuthorKeywords"].ToString()
                };

                publicacoes.Add(publicacao);
            }

            return(publicacoes);
        }
        private static void CarregarDados()
        {
            Console.WriteLine($"[{DateTime.Now}] Carregando stopwords...");
            List <string> stopWords = CarregarStopWords();

            Console.WriteLine($"[{DateTime.Now}] Carregando publicações...");
            List <PublicacaoDTO> publicacoesDto = CarregarPublicacoes();

            Console.WriteLine($"[{DateTime.Now}] Salvando Publicações...");
            foreach (PublicacaoDTO publicacao in publicacoesDto)
            {
                publicacao.Salvar();
            }

            Console.WriteLine($"[{DateTime.Now}] Extraindo Autores...");
            ExtrairAutores(publicacoesDto);

            publicacoesDto.Clear();
            List <Publicacao> publicacoes = Publicacao.Listar();

            Console.WriteLine("Extraindo termos...");
            ExtrairTermos(publicacoes, stopWords);
        }
        public List <PublicacaoPesquisa> Aplicar()
        {
            var pubsPesquisa = new List <PublicacaoPesquisa>();

            Dictionary <int, int> codigosOcorrencias = PublicacaoTermo.RetornarPublicacoesOcorrencias(_termos);

            List <Publicacao> publicacoes = Publicacao.ListarPorCodigos(codigosOcorrencias.Keys.ToList());

            foreach (KeyValuePair <int, int> valores in codigosOcorrencias)
            {
                var publicacaoPesquisa = new PublicacaoPesquisa(valores.Key);

                int qtPubAutores = PublicacaoAutor.SomatorioPublicacoesSemelhantes(valores.Key, codigosOcorrencias.Keys.ToList());

                publicacaoPesquisa.CalcularRelevancia(
                    int.Parse(publicacoes.Find(p => p.CodigoPublicacao == valores.Key).CitedBy),
                    valores.Value, qtPubAutores);

                pubsPesquisa.Add(publicacaoPesquisa);
            }

            return(OrdernarResultados(pubsPesquisa));
        }