예제 #1
0
        private List <PublicacaoPesquisa> OrdernarResultados(List <PublicacaoPesquisa> pubsPesquisa)
        {
            var aux = new PublicacaoPesquisa(0);

            for (int i = 0; i < pubsPesquisa.Count - 1; i++)
            {
                for (int j = 0; j < pubsPesquisa.Count - (i + 1); j++)
                {
                    if (pubsPesquisa[j].Relevancia < pubsPesquisa[j + 1].Relevancia)
                    {
                        aux                 = pubsPesquisa[j];
                        pubsPesquisa[j]     = pubsPesquisa[j + 1];
                        pubsPesquisa[j + 1] = aux;
                    }
                }
            }

            return(pubsPesquisa);
        }
예제 #2
0
        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));
        }