Beispiel #1
0
        public static List <Questao> ListarPorPalavraChave(string[] palavraChave)
        {
            List <Questao> questoes       = Questao.Listar();
            List <Questao> retorno        = new List <Questao>();
            List <string>  tags           = new List <string>();
            string         tagsReservadas = "ão das de dos das do da porque que como isso quais porquê quê por abaixo porém mas a e o as os para cujo quais";

            for (int i = 0; i < palavraChave.Length; i++)
            {
                if (!string.IsNullOrWhiteSpace(palavraChave[i]) && !tagsReservadas.Contains(palavraChave[i]))
                {
                    tags.Add(palavraChave[i].Trim());
                }
            }
            if (tags.Count != 0)
            {
                int contador = 0;
                foreach (var questao in questoes)
                {
                    string enunciado = questao.Enunciado.ToLower();
                    foreach (var palavra in tags)
                    {
                        if (enunciado.Contains(palavra))
                        {
                            contador++;
                        }
                    }
                    if (contador == tags.Count)
                    {
                        retorno.Insert(0, questao);
                    }
                    else if (contador != 0)
                    {
                        retorno.Add(questao);
                    }
                    contador = 0;
                }
            }
            return(retorno);
        }