Added count of items removed from library.

This commit is contained in:
Michael Bucari-Tovo 2021-07-02 15:01:55 -06:00
parent 00f7e4b779
commit 771d992da7
4 changed files with 14 additions and 10 deletions

View File

@ -13,10 +13,10 @@ namespace ApplicationServices
{ {
public static class LibraryCommands public static class LibraryCommands
{ {
public static async Task<(int totalCount, int newCount)> ImportAccountAsync(Func<Account, ILoginCallback> loginCallbackFactoryFunc, params Account[] accounts) public static async Task<(int totalCount, int newCount, int removedCount)> ImportAccountAsync(Func<Account, ILoginCallback> loginCallbackFactoryFunc, params Account[] accounts)
{ {
if (accounts is null || accounts.Length == 0) if (accounts is null || accounts.Length == 0)
return (0, 0); return (0, 0, 0);
try try
{ {
@ -25,13 +25,13 @@ namespace ApplicationServices
var totalCount = importItems.Count; var totalCount = importItems.Count;
Log.Logger.Information($"GetAllLibraryItems: Total count {totalCount}"); Log.Logger.Information($"GetAllLibraryItems: Total count {totalCount}");
var newCount = await importIntoDbAsync(importItems); (var newCount, var removedCount) = await importIntoDbAsync(importItems);
Log.Logger.Information($"Import: New count {newCount}"); Log.Logger.Information($"Import: New count {newCount}");
await Task.Run(() => SearchEngineCommands.FullReIndex()); await Task.Run(() => SearchEngineCommands.FullReIndex());
Log.Logger.Information("FullReIndex: success"); Log.Logger.Information("FullReIndex: success");
return (totalCount, newCount); return (totalCount, newCount, removedCount);
} }
catch (AudibleApi.Authentication.LoginFailedException lfEx) catch (AudibleApi.Authentication.LoginFailedException lfEx)
{ {
@ -90,14 +90,16 @@ namespace ApplicationServices
return dtoItems.Select(d => new ImportItem { DtoItem = d, AccountId = account.AccountId, LocaleName = account.Locale?.Name }).ToList(); return dtoItems.Select(d => new ImportItem { DtoItem = d, AccountId = account.AccountId, LocaleName = account.Locale?.Name }).ToList();
} }
private static async Task<int> importIntoDbAsync(List<ImportItem> importItems) private static async Task<(ushort newCount, ushort removedCount)> importIntoDbAsync(List<ImportItem> importItems)
{ {
using var context = DbContexts.GetContext(); using var context = DbContexts.GetContext();
var libraryImporter = new LibraryImporter(context); var libraryImporter = new LibraryImporter(context);
var newCount = await Task.Run(() => libraryImporter.Import(importItems)); var newAndRemoved = await Task.Run(() => libraryImporter.Import(importItems));
context.SaveChanges(); context.SaveChanges();
return newCount; var newCount = (ushort)(newAndRemoved >> 0x10);
var removedCount = (ushort)(newAndRemoved & 0xffff);
return (newCount, removedCount);
} }
public static int UpdateTags(this LibationContext context, Book book, string newTags) public static int UpdateTags(this LibationContext context, Book book, string newTags)

View File

@ -62,7 +62,7 @@ namespace DtoImporterService
var qtyNew = newItems.Count(); var qtyNew = newItems.Count();
var qtyRemoved = removedItems.Count(); var qtyRemoved = removedItems.Count();
return qtyNew; return (qtyNew << 0x10) | (qtyRemoved & 0xffff);
} }
} }
} }

View File

@ -11,6 +11,7 @@ namespace LibationWinForms.Dialogs
private Account[] _accounts { get; } private Account[] _accounts { get; }
public int NewBooksAdded { get; private set; } public int NewBooksAdded { get; private set; }
public int OldBooksRemoved { get; private set; }
public int TotalBooksProcessed { get; private set; } public int TotalBooksProcessed { get; private set; }
public IndexLibraryDialog(params Account[] accounts) public IndexLibraryDialog(params Account[] accounts)
@ -31,7 +32,7 @@ namespace LibationWinForms.Dialogs
try try
{ {
(TotalBooksProcessed, NewBooksAdded) = await LibraryCommands.ImportAccountAsync((account) => new WinformResponder(account), _accounts); (TotalBooksProcessed, NewBooksAdded, OldBooksRemoved) = await LibraryCommands.ImportAccountAsync((account) => new WinformResponder(account), _accounts);
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -284,8 +284,9 @@ namespace LibationWinForms
var totalProcessed = dialog.TotalBooksProcessed; var totalProcessed = dialog.TotalBooksProcessed;
var newAdded = dialog.NewBooksAdded; var newAdded = dialog.NewBooksAdded;
var oldRemoved = dialog.OldBooksRemoved;
MessageBox.Show($"Total processed: {totalProcessed}\r\nNew: {newAdded}"); MessageBox.Show($"Total processed: {totalProcessed}\r\nNew: {newAdded}\r\nRemoved: {oldRemoved}");
if (totalProcessed > 0) if (totalProcessed > 0)
reloadGrid(); reloadGrid();