From 3a40d6ce77bb5a369be45ebf74011d467cf4c2e6 Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Tue, 23 Nov 2021 10:54:34 -0600 Subject: [PATCH] fix local library locking when adding paths (#492) --- CHANGELOG.md | 1 + .../Libraries/Commands/CreateLocalLibraryHandler.cs | 5 ++--- .../Libraries/Commands/UpdateLocalLibraryHandler.cs | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff8a42b2a..2245522c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Properly fix database incompatibility introduced with v0.2.4-alpha and partially fixed with v0.2.5-alpha - The proper fix requires rebuilding all playouts, which will happen on startup after upgrading +- Fix local library locking/progress display when adding paths ### Added - Add *experimental* `Songs` local libraries diff --git a/ErsatzTV.Application/Libraries/Commands/CreateLocalLibraryHandler.cs b/ErsatzTV.Application/Libraries/Commands/CreateLocalLibraryHandler.cs index b6e289eae..dc5a7e8bf 100644 --- a/ErsatzTV.Application/Libraries/Commands/CreateLocalLibraryHandler.cs +++ b/ErsatzTV.Application/Libraries/Commands/CreateLocalLibraryHandler.cs @@ -1,5 +1,4 @@ -using System.Collections.Generic; -using System.Linq; +using System.Linq; using System.Threading; using System.Threading.Channels; using System.Threading.Tasks; @@ -37,7 +36,7 @@ namespace ErsatzTV.Application.Libraries.Commands CreateLocalLibrary request, CancellationToken cancellationToken) { - await using TvContext dbContext = _dbContextFactory.CreateDbContext(); + await using TvContext dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken); Validation validation = await Validate(dbContext, request); return await validation.Apply(localLibrary => PersistLocalLibrary(dbContext, localLibrary)); } diff --git a/ErsatzTV.Application/Libraries/Commands/UpdateLocalLibraryHandler.cs b/ErsatzTV.Application/Libraries/Commands/UpdateLocalLibraryHandler.cs index 945f98663..c4f4576f9 100644 --- a/ErsatzTV.Application/Libraries/Commands/UpdateLocalLibraryHandler.cs +++ b/ErsatzTV.Application/Libraries/Commands/UpdateLocalLibraryHandler.cs @@ -43,7 +43,7 @@ namespace ErsatzTV.Application.Libraries.Commands UpdateLocalLibrary request, CancellationToken cancellationToken) { - await using TvContext dbContext = _dbContextFactory.CreateDbContext(); + await using TvContext dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken); Validation validation = await Validate(dbContext, request); return await validation.Apply(parameters => UpdateLocalLibrary(dbContext, parameters)); } @@ -53,7 +53,6 @@ namespace ErsatzTV.Application.Libraries.Commands (LocalLibrary existing, LocalLibrary incoming) = parameters; existing.Name = incoming.Name; - // toAdd var toAdd = incoming.Paths .Filter(p => existing.Paths.All(ep => NormalizePath(ep.Path) != NormalizePath(p.Path))) .ToList(); @@ -77,7 +76,7 @@ namespace ErsatzTV.Application.Libraries.Commands _searchIndex.Commit(); } - if (toAdd.Count > 0 || toRemove.Count > 0 && _entityLocker.LockLibrary(existing.Id)) + if ((toAdd.Count > 0 || toRemove.Count > 0) && _entityLocker.LockLibrary(existing.Id)) { await _workerChannel.WriteAsync(new ForceScanLocalLibrary(existing.Id)); }