Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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;
            }
        }