Ejemplo n.º 1
0
        public async Task <IActionResult> RefreshFeeds()
        {
            var feeds = db.Feeds.ToList();

            foreach (var feed in feeds)
            {
                var articles = await _feed.GetArticlesFromFeed(feed);

                var newArticles = articles.Where(a => a.PublishDate > feed.LastUpdate && !db.Articles.Any(d => d.ArticleId == a.ArticleId));

                if (newArticles.Count() > 0)
                {
                    db.Articles.AddRange(newArticles);
                    var lastArticle = newArticles.OrderByDescending(a => a.PublishDate).First();
                    await _subscription.NotifyUsers(lastArticle);
                }
                feed.LastUpdate = DateTime.Now;
                await db.SaveChangesAsync();
            }
            return(Ok());
        }