Exemple #1
0
        public async Task <List <Tuple <Database.NicoVideo, Database.Bookmark> > > RefreshFeedItemsAsync(Database.Feed feedGroup)
        {
            var items = feedGroup.Sources;

            List <Tuple <Database.NicoVideo, Database.Bookmark> > itemsContainer = new List <Tuple <Database.NicoVideo, Database.Bookmark> >();

            foreach (var source in items)
            {
                var feedItems = await GetItems(source);

                itemsContainer.AddRange(feedItems.Select(x => new Tuple <Database.NicoVideo, Database.Bookmark>(x, source)));
            }

            feedGroup.UpdateAt = DateTime.Now;

            UpdateFeedGroup(feedGroup);

            var finalItemsList = itemsContainer
                                 .OrderByDescending(x => x.Item1.PostedAt)
                                 .ToList();

            // フィードの動画一覧を更新
            Database.FeedVideoDb.Upsert(feedGroup.Id, finalItemsList.Select(x => x.Item1.RawVideoId));

            FeedUpdated?.Invoke(this, new FeedUpdateEventArgs()
            {
                Feed  = feedGroup,
                Items = finalItemsList
            });

            return(finalItemsList);
        }
Exemple #2
0
 protected virtual void OnFeedUpdated(FeedEventArgs e)
 {
     FeedUpdated?.Invoke(this, e);
 }