public void PopulateModel() { var feedCreator = new NewsFeedCreator(); var allFeedItems = new List <RssItem>(); foreach (var feed in this.Feeds) { var rss = feed == NewsFeeds.reddit ? feedCreator.GetAtomFeed(FeedUrls[feed]) : feedCreator.GetFeed(FeedUrls[feed]); if (rss.RssChannel.RssItems != null) { foreach (var item in rss.RssChannel.RssItems) { item.NewsFeed = feed.ToString(); } allFeedItems.AddRange(rss.RssChannel.RssItems); } } foreach (var feedUrlTuple in this.FeedUrlsExtra) { var rss = feedUrlTuple.Item1 == NewsFeeds.reddit ? feedCreator.GetAtomFeed(feedUrlTuple.Item2) : feedCreator.GetFeed(feedUrlTuple.Item2); foreach (var item in rss.RssChannel.RssItems) { item.NewsFeed = feedUrlTuple.Item1.ToString(); } allFeedItems.AddRange(rss.RssChannel.RssItems); } this.Item = allFeedItems .GroupBy(a => a.Link) .Select(a => a.First()) .Where(a => a.PubDate != null) .Where(a => { var diff = DateTime.UtcNow - a.PubDate.Value; var withinWeek = diff.TotalDays <= 7; return(withinWeek); }) .OrderByDescending(a => a.PubDate) .Take(50) .ToList(); }
public void PopulateModel() { var feedCreator = new NewsFeedCreator(); var fgFeed = feedCreator.GetFangraphsFeed(); var mlbFeed = feedCreator.GetMlbFeed(); if (fgFeed.RssChannel != null && mlbFeed != null) { var both = new List <RssItem>(fgFeed.RssChannel.RssItems) .Concat(mlbFeed.RssChannel.RssItems); both = both.OrderByDescending(a => a.PubDate); this.Items = both; } }