コード例 #1
0
        private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            var sESSDATA = ApplicationData.Current.LocalSettings.Values["biliUserSESSDATA"] as string;

            var list = new List <BiliVideoInfo>();

            foreach (var item in vm.VideoList)
            {
                if (item.ToDownload == false)
                {
                    continue;
                }
                list.Add(item.Info);
            }
            if (list.Count < 1)
            {
                PrimaryButtonText = "请选择至少一个视频";
                await Task.Delay(2000);

                if (PrimaryButtonText == "请选择至少一个视频")
                {
                    PrimaryButtonText = "下载所选项";
                }
                return;
            }
            if (this.qualityComboBox.SelectedValue == null)
            {
                PrimaryButtonText = "请选择清晰度";
                await Task.Delay(2000);

                if (PrimaryButtonText == "请选择清晰度")
                {
                    PrimaryButtonText = "下载所选项";
                }
                return;
            }
            this.needToClose = true;
            var quality = (int)this.qualityComboBox.SelectedValue;

            try
            {
                await DownloadHelper.CreateDownloadsAsync(list, quality, sESSDATA, XamlRoot);
            }
            catch (DirectoryNotFoundException ex)
            {
                var dialog = new ExceptionDialog(ex.Message, XamlRoot);
                _ = await dialog.ShowAsync();
            }
            catch (ParsingVideoException ex)
            {
                var dialog = new ErrorDialog(ex.Message, XamlRoot);
                var result = await dialog.ShowAsync();

                if (result == ContentDialogResult.Primary)
                {
                    MainPage.NavView.SelectedItem = MainPage.NavViewItems[2];
                    MainPage.ContentFrame.Navigate(typeof(UserPage));
                }
            }
        }