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);
            }
        }