Пример #1
0
        /// <summary>
        /// Metodo para obtener todas las entradas y filtrar las deseadas por los terminos proporcionados
        /// </summary>
        /// <param name="palabras">Criterios de busqueda</param>
        /// <param name="andor">Especifica como se aplicara la expresion logica entre los elementos de la busqueda. false es OR y true es AND</param>
        /// <returns>Una lista con las entradas</returns>
        public List <entry> getFeed(List <string> palabras, bool andor = false)
        {
            List <entry> lista = new List <entry>();

            msj = null;
            try
            {
                XmlReader       reader = XmlReader.Create(this.rss);
                SyndicationFeed feed   = SyndicationFeed.Load(reader);
                reader.Close();
                foreach (SyndicationItem item in feed.Items)
                {
                    String subject  = item.Title.Text;
                    String summary  = item.Summary.Text;
                    String category = item.Categories[0].Name;
                    subject = subject.ToLower();
                    var query = (from palabra in palabras where subject.Contains(palabra.ToLower()) select palabra);
                    if (andor)
                    {
                        if (query.Count() == palabras.Count)
                        {
                            var obj = new entry(item.Title.Text.Trim(), item.Id, category);
                            lista.Add(obj);
                        }
                    }
                    else
                    {
                        if (query.Count() != 0)
                        {
                            var obj = new entry(item.Title.Text.Trim(), item.Id, category);
                            lista.Add(obj);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                msj = e;
            }
            return(lista);
        }