remove v3=>4 migration work-arounds
This commit is contained in:
parent
57fa1bd763
commit
e59ab9b483
@ -67,7 +67,7 @@ namespace ApplicationServices
|
|||||||
|
|
||||||
static System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
|
static System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
|
||||||
record timeLogEntry(string msg, long totalElapsed, long delta);
|
record timeLogEntry(string msg, long totalElapsed, long delta);
|
||||||
static List<timeLogEntry> __log { get; } = new List<timeLogEntry> { new("begin", 0, 0) };
|
static List<timeLogEntry> __log { get; } = new List<timeLogEntry>();
|
||||||
static void logTime(string s)
|
static void logTime(string s)
|
||||||
{
|
{
|
||||||
var totalElapsed = sw.ElapsedMilliseconds;
|
var totalElapsed = sw.ElapsedMilliseconds;
|
||||||
@ -81,7 +81,9 @@ namespace ApplicationServices
|
|||||||
#region FULL LIBRARY scan and import
|
#region FULL LIBRARY scan and import
|
||||||
public static async Task<(int totalCount, int newCount)> ImportAccountAsync(Func<Account, ILoginCallback> loginCallbackFactoryFunc, params Account[] accounts)
|
public static async Task<(int totalCount, int newCount)> ImportAccountAsync(Func<Account, ILoginCallback> loginCallbackFactoryFunc, params Account[] accounts)
|
||||||
{
|
{
|
||||||
sw.Start();
|
__log.Clear();
|
||||||
|
__log.Add(new("begin", 0, 0));
|
||||||
|
sw.Restart();
|
||||||
|
|
||||||
if (accounts is null || accounts.Length == 0)
|
if (accounts is null || accounts.Length == 0)
|
||||||
return (0, 0);
|
return (0, 0);
|
||||||
|
|||||||
@ -30,8 +30,6 @@ namespace DataLayer
|
|||||||
public string Description { get; private set; }
|
public string Description { get; private set; }
|
||||||
public int LengthInMinutes { get; private set; }
|
public int LengthInMinutes { get; private set; }
|
||||||
public ContentType ContentType { get; private set; }
|
public ContentType ContentType { get; private set; }
|
||||||
|
|
||||||
// immutable-ish. should be immutable. mutability is necessary for v3 => v4 upgrades
|
|
||||||
public string Locale { get; private set; }
|
public string Locale { get; private set; }
|
||||||
|
|
||||||
// mutable
|
// mutable
|
||||||
@ -78,7 +76,8 @@ namespace DataLayer
|
|||||||
ContentType contentType,
|
ContentType contentType,
|
||||||
IEnumerable<Contributor> authors,
|
IEnumerable<Contributor> authors,
|
||||||
IEnumerable<Contributor> narrators,
|
IEnumerable<Contributor> narrators,
|
||||||
Category category, string localeName)
|
Category category,
|
||||||
|
string localeName)
|
||||||
{
|
{
|
||||||
// validate
|
// validate
|
||||||
ArgumentValidator.EnsureNotNull(audibleProductId, nameof(audibleProductId));
|
ArgumentValidator.EnsureNotNull(audibleProductId, nameof(audibleProductId));
|
||||||
@ -260,10 +259,6 @@ namespace DataLayer
|
|||||||
Category = category;
|
Category = category;
|
||||||
}
|
}
|
||||||
|
|
||||||
// needed for v3 => v4 upgrade
|
|
||||||
public void UpdateLocale(string localeName)
|
|
||||||
=> Locale ??= localeName;
|
|
||||||
|
|
||||||
public override string ToString() => $"[{AudibleProductId}] {Title}";
|
public override string ToString() => $"[{AudibleProductId}] {Title}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,8 +9,6 @@ namespace DataLayer
|
|||||||
public Book Book { get; private set; }
|
public Book Book { get; private set; }
|
||||||
|
|
||||||
public DateTime DateAdded { get; private set; }
|
public DateTime DateAdded { get; private set; }
|
||||||
|
|
||||||
// immutable-ish. should be immutable. mutability is necessary for v3 => v4 upgrades
|
|
||||||
public string Account { get; private set; }
|
public string Account { get; private set; }
|
||||||
|
|
||||||
private LibraryBook() { }
|
private LibraryBook() { }
|
||||||
@ -24,10 +22,6 @@ namespace DataLayer
|
|||||||
Account = account;
|
Account = account;
|
||||||
}
|
}
|
||||||
|
|
||||||
// needed for v3 => v4 upgrade
|
|
||||||
public void UpdateAccount(string account)
|
|
||||||
=> Account ??= account;
|
|
||||||
|
|
||||||
public override string ToString() => $"{DateAdded:d} {Book}";
|
public override string ToString() => $"{DateAdded:d} {Book}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -155,9 +155,6 @@ namespace DtoImporterService
|
|||||||
book.PictureId = item.PictureId;
|
book.PictureId = item.PictureId;
|
||||||
book.UpdateProductRating(item.Product_OverallStars, item.Product_PerformanceStars, item.Product_StoryStars);
|
book.UpdateProductRating(item.Product_OverallStars, item.Product_PerformanceStars, item.Product_StoryStars);
|
||||||
|
|
||||||
// needed during v3 => v4 migration
|
|
||||||
book.UpdateLocale(importItem.LocaleName);
|
|
||||||
|
|
||||||
// important to update user-specific info. this will have changed if user has rated/reviewed the book since last library import
|
// important to update user-specific info. this will have changed if user has rated/reviewed the book since last library import
|
||||||
book.UserDefinedItem.UpdateRating(item.MyUserRating_Overall, item.MyUserRating_Performance, item.MyUserRating_Story);
|
book.UserDefinedItem.UpdateRating(item.MyUserRating_Overall, item.MyUserRating_Performance, item.MyUserRating_Story);
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using AudibleApi.Common;
|
|
||||||
using DataLayer;
|
using DataLayer;
|
||||||
using InternalUtilities;
|
using InternalUtilities;
|
||||||
|
|
||||||
@ -28,7 +27,8 @@ namespace DtoImporterService
|
|||||||
// - what to show in the grid
|
// - what to show in the grid
|
||||||
// - which to consider liberated
|
// - which to consider liberated
|
||||||
//
|
//
|
||||||
// sqlite cannot alter pk. the work around is an extensive headache. it'll be fixed in pre .net5/efcore5
|
// sqlite cannot alter pk. the work around is an extensive headache
|
||||||
|
// - update: now possible in .net5/efcore5
|
||||||
//
|
//
|
||||||
// currently, inserting LibraryBook will throw error if the same book is in multiple accounts for the same region.
|
// currently, inserting LibraryBook will throw error if the same book is in multiple accounts for the same region.
|
||||||
//
|
//
|
||||||
@ -46,15 +46,6 @@ namespace DtoImporterService
|
|||||||
DbContext.LibraryBooks.Add(libraryBook);
|
DbContext.LibraryBooks.Add(libraryBook);
|
||||||
}
|
}
|
||||||
|
|
||||||
// needed for v3 => v4 upgrade
|
|
||||||
var toUpdate = DbContext.LibraryBooks.Where(l => l.Account == null);
|
|
||||||
foreach (var u in toUpdate)
|
|
||||||
{
|
|
||||||
var item = importItems.FirstOrDefault(ii => ii.DtoItem.ProductId == u.Book.AudibleProductId);
|
|
||||||
if (item != null)
|
|
||||||
u.UpdateAccount(item.AccountId);
|
|
||||||
}
|
|
||||||
|
|
||||||
var qtyNew = newItems.Count;
|
var qtyNew = newItems.Count;
|
||||||
return qtyNew;
|
return qtyNew;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<!-- <PublishSingleFile>true</PublishSingleFile> -->
|
<!-- <PublishSingleFile>true</PublishSingleFile> -->
|
||||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
|
|
||||||
<Version>5.6.3.6</Version>
|
<Version>5.6.3.10</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user