Exemple #1
0
        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();
        }
Exemple #2
0
        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;
            }
        }