protected override async void Execute(IVideoContent content) { var status = _videoCacheManager.GetVideoCacheStatus(content.VideoId); if (status is null) { return; } if (status is VideoCacheStatus.Completed) { var confirmed = await _dialogService.ShowMessageDialog( "ConfirmCacheRemoveContent".Translate(content.Title), $"ConfirmCacheRemoveTitle".Translate(), acceptButtonText : "Delete".Translate(), "Cancel".Translate() ); if (confirmed) { await _videoCacheManager.CancelCacheRequestAsync(content.VideoId); } } else { await _videoCacheManager.CancelCacheRequestAsync(content.VideoId); } }
public async Task Process(string arguments) { var toastArguments = ToastArguments.Parse(arguments); if (!toastArguments.TryGetValue(ToastNotificationConstants.ToastArgumentKey_Action, out string actionType)) { return; } switch (actionType) { case ToastNotificationConstants.ToastArgumentValue_Action_DeleteCache: { if (!toastArguments.TryGetValue(ToastNotificationConstants.ToastArgumentKey_Id, out string id)) { throw new Models.Infrastructure.HohoemaExpception("no id"); } await _videoCacheManager.CancelCacheRequestAsync(id); } break; case ToastNotificationConstants.ToastArgumentValue_Action_PlayVideo: { if (!toastArguments.TryGetValue(ToastNotificationConstants.ToastArgumentKey_Id, out string id)) { throw new Models.Infrastructure.HohoemaExpception("no id"); } await PlayVideoFromExternal(id); } break; case ToastNotificationConstants.ToastArgumentValue_Action_PlayPlaylist: { if (!toastArguments.TryGetValue(ToastNotificationConstants.ToastArgumentKey_PlaylistId, out string playlistId)) { throw new Models.Infrastructure.HohoemaExpception("no id"); } if (!toastArguments.TryGetValue(ToastNotificationConstants.ToastArgumentKey_PlaylistOrigin, out string playlistOrigin) || !Enum.TryParse <PlaylistItemsSourceOrigin>(playlistOrigin, out var origin) ) { throw new Models.Infrastructure.HohoemaExpception("no id"); } await PlayPlaylistFromExternal(origin, playlistId); } break; case ToastNotificationConstants.ToastArgumentValue_Action_OpenPage: { if (!toastArguments.TryGetValue(ToastNotificationConstants.ToastArgumentKey_PageType, out string pageTypeStr)) { throw new Models.Infrastructure.HohoemaExpception("no pageType"); } if (!Enum.TryParse <HohoemaPageType>(pageTypeStr, out var pageType)) { throw new Models.Infrastructure.HohoemaExpception("no supported pageType: " + pageTypeStr); } if (toastArguments.TryGetValue(ToastNotificationConstants.ToastArgumentKey_PageParameters, out string parameters)) { _pageManager.OpenPage(pageType, parameters); } else { _pageManager.OpenPage(pageType); } } break; } }