bug fix: db persistence shouldn't be a side effect. the client should say when to persist in some fairly explicit way

This commit is contained in:
Robert McRackan 2022-05-10 16:48:52 -04:00
parent c6ce814e1c
commit e368e4669b
6 changed files with 20 additions and 17 deletions

View File

@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<Version>7.3.0.1</Version>
<Version>7.4.0.1</Version>
</PropertyGroup>
<ItemGroup>

View File

@ -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();
}

View File

@ -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;
}

View File

@ -6,6 +6,7 @@
<ItemGroup>
<ProjectReference Include="..\AaxDecrypter\AaxDecrypter.csproj" />
<ProjectReference Include="..\ApplicationServices\ApplicationServices.csproj" />
<ProjectReference Include="..\DataLayer\DataLayer.csproj" />
<ProjectReference Include="..\AudibleUtilities\AudibleUtilities.csproj" />
</ItemGroup>

View File

@ -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}");
}

View File

@ -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