From 801e54154e42f82f1888b9a5f17fda7898a3c253 Mon Sep 17 00:00:00 2001 From: tobiichiamane Date: Tue, 10 Dec 2019 23:19:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=9E=E6=8E=89=E4=BF=9D=E5=AD=98=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=97=B6=E4=BA=A7=E7=94=9F=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PixivFSUWP/SearchResultPage.xaml.cs | 48 +++++++++++++++++------------ PixivFSUWP/WaterfallPage.xaml.cs | 48 +++++++++++++++++------------ 2 files changed, 56 insertions(+), 40 deletions(-) diff --git a/PixivFSUWP/SearchResultPage.xaml.cs b/PixivFSUWP/SearchResultPage.xaml.cs index bba3dd2..fa686ec 100644 --- a/PixivFSUWP/SearchResultPage.xaml.cs +++ b/PixivFSUWP/SearchResultPage.xaml.cs @@ -182,31 +182,39 @@ private async void QuickSave_Click(object sender, RoutedEventArgs e) { if (tapped == null) return; var i = tapped; - FileSavePicker picker = new FileSavePicker(); - picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; - picker.FileTypeChoices.Add(GetResourceString("ImageFilePlain"), new List() { ".png" }); - picker.SuggestedFileName = i.Title; - var file = await picker.PickSaveFileAsync(); - if (file != null) + try { - CachedFileManager.DeferUpdates(file); - var res = await new PixivAppAPI(Data.OverAll.GlobalBaseAPI) - .IllustDetail(i.ItemId.ToString()); - var illust = Data.IllustDetail.FromJsonValue(res); - using (var imgstream = await Data.OverAll.DownloadImage(illust.OriginalUrls[0])) + FileSavePicker picker = new FileSavePicker(); + picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; + picker.FileTypeChoices.Add(GetResourceString("ImageFilePlain"), new List() { ".png" }); + picker.SuggestedFileName = i.Title; + var file = await picker.PickSaveFileAsync(); + if (file != null) { - using (var filestream = await file.OpenAsync(FileAccessMode.ReadWrite)) + CachedFileManager.DeferUpdates(file); + var res = await new PixivAppAPI(Data.OverAll.GlobalBaseAPI) + .IllustDetail(i.ItemId.ToString()); + var illust = Data.IllustDetail.FromJsonValue(res); + using (var imgstream = await Data.OverAll.DownloadImage(illust.OriginalUrls[0])) { - await imgstream.CopyToAsync(filestream.AsStream()); + using (var filestream = await file.OpenAsync(FileAccessMode.ReadWrite)) + { + await imgstream.CopyToAsync(filestream.AsStream()); + } } + var updateStatus = await CachedFileManager.CompleteUpdatesAsync(file); + if (updateStatus == FileUpdateStatus.Complete) + await (((((Frame.Parent as Grid).Parent as Page).Parent as Frame).Parent as Grid)?.Parent as MainPage)?. + ShowTip(string.Format(GetResourceString("WorkSavedPlain"), i.Title)); + else + await (((((Frame.Parent as Grid).Parent as Page).Parent as Frame).Parent as Grid)?.Parent as MainPage)?. + ShowTip(string.Format(GetResourceString("WorkSaveFailedPlain"), i.Title)); } - var updateStatus = await CachedFileManager.CompleteUpdatesAsync(file); - if (updateStatus == FileUpdateStatus.Complete) - await (((((Frame.Parent as Grid).Parent as Page).Parent as Frame).Parent as Grid)?.Parent as MainPage)?. - ShowTip(string.Format(GetResourceString("WorkSavedPlain"), i.Title)); - else - await (((((Frame.Parent as Grid).Parent as Page).Parent as Frame).Parent as Grid)?.Parent as MainPage)?. - ShowTip(string.Format(GetResourceString("WorkSaveFailedPlain"), i.Title)); + } + catch + { + await (((((Frame.Parent as Grid).Parent as Page).Parent as Frame).Parent as Grid)?.Parent as MainPage)?. + ShowTip(string.Format(GetResourceString("WorkSaveFailedPlain"), i.Title)); } } } diff --git a/PixivFSUWP/WaterfallPage.xaml.cs b/PixivFSUWP/WaterfallPage.xaml.cs index 6f77bd0..6fdc202 100644 --- a/PixivFSUWP/WaterfallPage.xaml.cs +++ b/PixivFSUWP/WaterfallPage.xaml.cs @@ -222,31 +222,39 @@ private async void QuickSave_Click(object sender, RoutedEventArgs e) { if (tapped == null) return; var i = tapped; - FileSavePicker picker = new FileSavePicker(); - picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; - picker.FileTypeChoices.Add(GetResourceString("ImageFilePlain"), new List() { ".png" }); - picker.SuggestedFileName = i.Title; - var file = await picker.PickSaveFileAsync(); - if (file != null) + try { - CachedFileManager.DeferUpdates(file); - var res = await new PixivAppAPI(Data.OverAll.GlobalBaseAPI) - .IllustDetail(i.ItemId.ToString()); - var illust = Data.IllustDetail.FromJsonValue(res); - using (var imgstream = await Data.OverAll.DownloadImage(illust.OriginalUrls[0])) + FileSavePicker picker = new FileSavePicker(); + picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; + picker.FileTypeChoices.Add(GetResourceString("ImageFilePlain"), new List() { ".png" }); + picker.SuggestedFileName = i.Title; + var file = await picker.PickSaveFileAsync(); + if (file != null) { - using (var filestream = await file.OpenAsync(FileAccessMode.ReadWrite)) + CachedFileManager.DeferUpdates(file); + var res = await new PixivAppAPI(Data.OverAll.GlobalBaseAPI) + .IllustDetail(i.ItemId.ToString()); + var illust = Data.IllustDetail.FromJsonValue(res); + using (var imgstream = await Data.OverAll.DownloadImage(illust.OriginalUrls[0])) { - await imgstream.CopyToAsync(filestream.AsStream()); + using (var filestream = await file.OpenAsync(FileAccessMode.ReadWrite)) + { + await imgstream.CopyToAsync(filestream.AsStream()); + } } + var updateStatus = await CachedFileManager.CompleteUpdatesAsync(file); + if (updateStatus == FileUpdateStatus.Complete) + await ((Frame.Parent as Grid)?.Parent as MainPage)?. + ShowTip(string.Format(GetResourceString("WorkSavedPlain"), i.Title)); + else + await ((Frame.Parent as Grid)?.Parent as MainPage)?. + ShowTip(string.Format(GetResourceString("WorkSaveFailedPlain"), i.Title)); } - var updateStatus = await CachedFileManager.CompleteUpdatesAsync(file); - if (updateStatus == FileUpdateStatus.Complete) - await ((Frame.Parent as Grid)?.Parent as MainPage)?. - ShowTip(string.Format(GetResourceString("WorkSavedPlain"), i.Title)); - else - await ((Frame.Parent as Grid)?.Parent as MainPage)?. - ShowTip(string.Format(GetResourceString("WorkSaveFailedPlain"), i.Title)); + } + catch + { + await ((Frame.Parent as Grid)?.Parent as MainPage)?. + ShowTip(string.Format(GetResourceString("WorkSaveFailedPlain"), i.Title)); } } }