protected override async void Execute(IEnumerable <IVideoContent> items) { var anyCached = items.Any(x => VideoCacheManager.CheckCachedAsyncUnsafe(x.Id)); if (anyCached) { var confirmed = await DialogService.ShowMessageDialog( "ConfirmCacheRemoveContent_Multiple".Translate(), $"ConfirmCacheRemoveTitle_Multiple".Translate(items.Count()), acceptButtonText : "Delete".Translate(), "Cancel".Translate() ); if (confirmed) { foreach (var item in items) { await VideoCacheManager.CancelCacheRequest(item.Id); } } } else { foreach (var item in items) { await VideoCacheManager.CancelCacheRequest(item.Id); } } }
protected override async void Execute(object parameter) { if (parameter is Interfaces.IVideoContent content) { var video = Database.NicoVideoDb.Get(content.Id); var cacheRequests = await VideoCacheManager.GetCacheRequest(content.Id); if (cacheRequests.Any()) { var choiceItems = await DialogService.ShowMultiChoiceDialogAsync( $"削除するキャッシュ動画を選択する\n「{video.Title}」", cacheRequests, Enumerable.Empty <Models.Cache.NicoVideoCacheRequest>(), nameof(Models.Cache.NicoVideoCacheRequest.Quality) ); if (choiceItems?.Any() ?? false) { foreach (var deleteItem in choiceItems) { await VideoCacheManager.CancelCacheRequest(content.Id, deleteItem.Quality); } } } } }
protected override async void Execute(IVideoContent content) { var video = Database.NicoVideoDb.Get(content.Id); var cacheRequests = await VideoCacheManager.GetCachedAsync(content.Id); if (cacheRequests.Any()) { var confirmed = await DialogService.ShowMessageDialog( "ConfirmCacheRemoveContent".Translate(content.Label), $"ConfirmCacheRemoveTitle".Translate(), acceptButtonText : "Delete".Translate(), "Cancel".Translate() ); if (confirmed) { await VideoCacheManager.CancelCacheRequest(content.Id); } } else { await VideoCacheManager.CancelCacheRequest(content.Id); } }