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