Exemplo n.º 1
0
        /// <summary>
        /// Update feeds
        /// </summary>
        /// <returns>Task</returns>
        public async Task Update()
        {
            var client = new HttpClient();
            Rss latest;

            using (var reader = new StringReader(await client.GetStringAsync(Endpoint)))
            {
                var desirializer = new XmlSerializer(typeof(Rss));
                latest = desirializer.Deserialize(reader) as Rss;
            }

            if (latest == null || latest.Channel.LastBuildDate.CompareTo(this.Feed.Channel.LastBuildDate) <= 0)
            {
                return;
            }

            // Merge old feed items and new feed items
            var oldItems = (from f in this.Feed.Channel.Items
                            where !latest.Channel.Items.Any(l => l.Equals(f.Guid))
                            orderby f.PubDate descending
                            select f).ToList();

            foreach (var old in oldItems)
            {
                latest.Channel.Items.Add(old);
            }

            this.Feed = latest;
        }
Exemplo n.º 2
0
 /// <summary>
 /// Constructor
 /// </summary>
 public NewsFeedService()
 {
     this.Feed = new Rss();
 }