Ejemplo n.º 1
0
 public Article(string id, string source, string subject, string title, string summary, List<Author> authors, DateTime lastUpdateTime, DateTime publishDate, Content content)
 {
     Id = id;
     Source = source;
     Title = title;
     Authors = authors;
     Content = content;
     Summary = summary;
     Subject = subject;
     PublishDate = publishDate.ToUniversalTime();
     LastUpdateTime = lastUpdateTime.ToUniversalTime();
 }
Ejemplo n.º 2
0
        public Dictionary<string, Article> Fetch(string uri)
        {
            var xmlReader = XmlReader.Create(uri);
            SyndicationFeed feed = SyndicationFeed.Load(xmlReader);
            xmlReader.Close();

            if (feed == null)
            {
                return null;
            }

            var articles = new Dictionary<string, Article>();

            foreach (var item in feed.Items)
            {
                string subject = item.Title.Text;
                string summary = item.Summary.Text;
                List<Author> authors = new List<Author>(item.Authors.Count);
                authors.AddRange(item.Authors.Select(author => new Author(author.Name, author.Email)));

                string articleContent = "";
                foreach (SyndicationElementExtension ext in item.ElementExtensions)
                {
                    if (ext.GetObject<XElement>().Name.LocalName == "encoded")
                    {
                        articleContent = ext.GetObject<XElement>().Value;
                    }
                }

                var content = new Content(articleContent, "Html");
                DateTime lastUpdateTime = item.LastUpdatedTime.DateTime;
                DateTime publishDate = item.PublishDate.DateTime;

                var article = new Article(item.Id, uri, subject, item.Title.Text, summary, authors, lastUpdateTime, publishDate, content);
                string key = string.Format("{0}.{1}", uri, item.Id);
                articles.Add(key, article);
            }
            return articles;
        }