diff --git a/Source/AppScaffolding/AppScaffolding.csproj b/Source/AppScaffolding/AppScaffolding.csproj
index aca3a938..c4ee9183 100644
--- a/Source/AppScaffolding/AppScaffolding.csproj
+++ b/Source/AppScaffolding/AppScaffolding.csproj
@@ -3,7 +3,7 @@
net6.0-windows
- 7.3.0.1
+ 7.4.0.1
diff --git a/Source/FileLiberator/DownloadDecryptBook.cs b/Source/FileLiberator/DownloadDecryptBook.cs
index b03334a0..191979cf 100644
--- a/Source/FileLiberator/DownloadDecryptBook.cs
+++ b/Source/FileLiberator/DownloadDecryptBook.cs
@@ -76,6 +76,7 @@ namespace FileLiberator
return new StatusHandler { "Cannot find final audio file after decryption" };
libraryBook.Book.UserDefinedItem.BookStatus = LiberatedStatus.Liberated;
+ ApplicationServices.LibraryCommands.UpdateUserDefinedItem(libraryBook.Book);
return new StatusHandler();
}
diff --git a/Source/FileLiberator/DownloadPdf.cs b/Source/FileLiberator/DownloadPdf.cs
index a2378e31..bd4817e2 100644
--- a/Source/FileLiberator/DownloadPdf.cs
+++ b/Source/FileLiberator/DownloadPdf.cs
@@ -29,6 +29,7 @@ namespace FileLiberator
var result = verifyDownload(actualDownloadedFilePath);
libraryBook.Book.UserDefinedItem.PdfStatus = result.IsSuccess ? LiberatedStatus.Liberated : LiberatedStatus.NotLiberated;
+ ApplicationServices.LibraryCommands.UpdateUserDefinedItem(libraryBook.Book);
return result;
}
diff --git a/Source/FileLiberator/FileLiberator.csproj b/Source/FileLiberator/FileLiberator.csproj
index 3da05437..460308d6 100644
--- a/Source/FileLiberator/FileLiberator.csproj
+++ b/Source/FileLiberator/FileLiberator.csproj
@@ -6,6 +6,7 @@
+
diff --git a/Source/LibationWinForms/BookLiberation/ProcessorAutomationController.cs b/Source/LibationWinForms/BookLiberation/ProcessorAutomationController.cs
index 2433ac39..eb6ac3af 100644
--- a/Source/LibationWinForms/BookLiberation/ProcessorAutomationController.cs
+++ b/Source/LibationWinForms/BookLiberation/ProcessorAutomationController.cs
@@ -257,6 +257,8 @@ $@" Title: {libraryBook.Book.Title}
if (dialogResult == SkipResult)
{
libraryBook.Book.UserDefinedItem.BookStatus = LiberatedStatus.Error;
+ ApplicationServices.LibraryCommands.UpdateUserDefinedItem(libraryBook.Book);
+
LogMe.Info($"Error. Skip: [{libraryBook.Book.AudibleProductId}] {libraryBook.Book.Title}");
}
diff --git a/Source/LibationWinForms/grid/GridEntry.cs b/Source/LibationWinForms/grid/GridEntry.cs
index 7fabcb38..aee51d4c 100644
--- a/Source/LibationWinForms/grid/GridEntry.cs
+++ b/Source/LibationWinForms/grid/GridEntry.cs
@@ -86,18 +86,18 @@ namespace LibationWinForms
public async Task DownloadBook()
{
- if (!DownloadInProgress)
+ if (DownloadInProgress)
+ return;
+
+ try
{
- try
- {
- DownloadInProgress = true;
- await BookLiberation.ProcessorAutomationController.BackupSingleBookAsync(LibraryBook);
- UpdateLiberatedStatus();
- }
- finally
- {
- DownloadInProgress = false;
- }
+ DownloadInProgress = true;
+ await BookLiberation.ProcessorAutomationController.BackupSingleBookAsync(LibraryBook);
+ UpdateLiberatedStatus();
+ }
+ finally
+ {
+ DownloadInProgress = false;
}
}
@@ -195,16 +195,14 @@ namespace LibationWinForms
Liberate.PdfStatus == pdfStatus)
return;
- // set
- Book.UserDefinedItem.Tags = newTags;
-
+ // update cache
_bookStatus = bookStatus;
_pdfStatus = pdfStatus;
+ // set + save
+ Book.UserDefinedItem.Tags = newTags;
Book.UserDefinedItem.BookStatus = bookStatus;
Book.UserDefinedItem.PdfStatus = pdfStatus;
-
- // save
LibraryCommands.UpdateUserDefinedItem(Book);
// notify