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); }
protected virtual void OnFeedUpdated(FeedEventArgs e) { FeedUpdated?.Invoke(this, e); }