remove v3=>4 migration work-arounds

This commit is contained in:
Robert McRackan 2021-09-03 13:42:58 -04:00
parent 57fa1bd763
commit e59ab9b483
6 changed files with 9 additions and 30 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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