protected override async Task <int> ResetSourceImpl() { await _VideoCacheManager.Initialize(); _CacheRequestMap.Clear(); var list = new List <NicoVideoCacheRequest>(); // キャッシュ待ちアイテム // キャッシュ中アイテム // キャッシュ済みアイテム foreach (var item in await _VideoCacheManager.EnumerateCacheRequestedVideosAsync()) { if (!_CacheRequestMap.ContainsKey(item.RawVideoId)) { list.Add(item); _CacheRequestMap.Add(item.RawVideoId, new List <NicoVideoCacheRequest>()); } _CacheRequestMap[item.RawVideoId].Add(item); } _CacheRequestedItems = list.OrderBy(x => x.RequestAt.Ticks).Reverse().Select(x => x.RawVideoId).ToList(); return(_CacheRequestedItems.Count); }