diff --git a/Source/LibationAvalonia/ViewModels/MainVM.BackupCounts.cs b/Source/LibationAvalonia/ViewModels/MainVM.BackupCounts.cs
index 7991a044..52bddb06 100644
--- a/Source/LibationAvalonia/ViewModels/MainVM.BackupCounts.cs
+++ b/Source/LibationAvalonia/ViewModels/MainVM.BackupCounts.cs
@@ -77,6 +77,6 @@ partial class MainVM
if (Configuration.Instance.AutoDownloadEpisodes
&& stats.PendingBooks + stats.pdfsNotDownloaded > 0)
- _ = BackupAllBooksAsync(stats.LibraryBooks);
+ BackupAllBooks(stats.LibraryBooks);
}
}
diff --git a/Source/LibationAvalonia/ViewModels/MainVM.Liberate.cs b/Source/LibationAvalonia/ViewModels/MainVM.Liberate.cs
index a750f7ed..359de0f8 100644
--- a/Source/LibationAvalonia/ViewModels/MainVM.Liberate.cs
+++ b/Source/LibationAvalonia/ViewModels/MainVM.Liberate.cs
@@ -16,16 +16,18 @@ partial class MainVM
/// This gets called by the "Begin Book and PDF Backups" menu item.
public async Task BackupAllBooks()
- => await BackupAllBooksAsync(await Task.Run(DbContexts.GetUnliberated_Flat_NoTracking));
+ {
+ var books = await Task.Run(DbContexts.GetUnliberated_Flat_NoTracking);
+ BackupAllBooks(books);
+ }
- /// Queues backup for the given library subset (menu, auto-download after scan, etc.).
- private async Task BackupAllBooksAsync(IEnumerable books)
+ private void BackupAllBooks(IEnumerable books)
{
try
{
var unliberated = books.UnLiberated().ToArray();
- await Dispatcher.UIThread.InvokeAsync(() =>
+ Dispatcher.UIThread.Invoke(() =>
{
if (ProcessQueue.QueueDownloadDecrypt(unliberated))
setQueueCollapseState(false);
diff --git a/Source/LibationWinForms/Form1.Liberate.cs b/Source/LibationWinForms/Form1.Liberate.cs
index cfa8d1fe..6eea9ad5 100644
--- a/Source/LibationWinForms/Form1.Liberate.cs
+++ b/Source/LibationWinForms/Form1.Liberate.cs
@@ -16,31 +16,24 @@ public partial class Form1
private async void beginBookBackupsToolStripMenuItem_Click(object? _ = null, EventArgs? __ = null)
{
var library = await Task.Run(DbContexts.GetUnliberated_Flat_NoTracking);
- await BackupAllBooksAsync(library);
+ BackupAllBooks(library);
}
- private Task BackupAllBooksAsync(IEnumerable books)
+ private void BackupAllBooks(IEnumerable books)
{
try
{
var unliberated = books.UnLiberated().ToArray();
- void queue()
+ Invoke(() =>
{
if (processBookQueue1.ViewModel.QueueDownloadDecrypt(unliberated))
SetQueueCollapseState(false);
- }
-
- if (InvokeRequired)
- Invoke(queue);
- else
- queue();
+ });
}
catch (Exception ex)
{
Serilog.Log.Logger.Error(ex, "An error occurred while backing up all library books");
}
-
- return Task.CompletedTask;
}
private async void beginPdfBackupsToolStripMenuItem_Click(object sender, EventArgs e)
diff --git a/Source/LibationWinForms/Form1._NonUI.cs b/Source/LibationWinForms/Form1._NonUI.cs
index f1f84eb2..5506166d 100644
--- a/Source/LibationWinForms/Form1._NonUI.cs
+++ b/Source/LibationWinForms/Form1._NonUI.cs
@@ -32,7 +32,7 @@ public partial class Form1
return;
if ((libraryStats.PendingBooks + libraryStats.pdfsNotDownloaded) > 0)
- _ = BackupAllBooksAsync(libraryStats.LibraryBooks);
+ BackupAllBooks(libraryStats.LibraryBooks);
};
}