From e4d66f35fdaece836edc26cb0d2af36fdb933d7f Mon Sep 17 00:00:00 2001 From: gnattu Date: Wed, 17 Apr 2024 14:41:19 +0800 Subject: chore: use proper way to override remove root This is an alternate approach which is more proper, but changes all parts that uses/overrides the original ValidateChildren method Signed-off-by: gnattu --- Emby.Server.Implementations/Library/LibraryManager.cs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 8f5f36688..ea8b83125 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -1042,26 +1042,16 @@ namespace Emby.Server.Implementations.Library new Progress(), new MetadataRefreshOptions(new DirectoryService(_fileSystem)), recursive: false, - cancellationToken).ConfigureAwait(false); + cancellationToken: cancellationToken).ConfigureAwait(false); await GetUserRootFolder().RefreshMetadata(cancellationToken).ConfigureAwait(false); - // HACK: override IsRoot here for libraries to be removed - if (removeRoot) - { - GetUserRootFolder().IsRoot = false; - } - await GetUserRootFolder().ValidateChildren( new Progress(), new MetadataRefreshOptions(new DirectoryService(_fileSystem)), recursive: false, - cancellationToken).ConfigureAwait(false); - // HACK: restore IsRoot here after validation - if (removeRoot) - { - GetUserRootFolder().IsRoot = true; - } + allowRemoveRoot: removeRoot, + cancellationToken: cancellationToken).ConfigureAwait(false); // Quickly scan CollectionFolders for changes foreach (var folder in GetUserRootFolder().Children.OfType()) @@ -1079,7 +1069,7 @@ namespace Emby.Server.Implementations.Library var innerProgress = new Progress(pct => progress.Report(pct * 0.96)); // Validate the entire media library - await RootFolder.ValidateChildren(innerProgress, new MetadataRefreshOptions(new DirectoryService(_fileSystem)), recursive: true, cancellationToken).ConfigureAwait(false); + await RootFolder.ValidateChildren(innerProgress, new MetadataRefreshOptions(new DirectoryService(_fileSystem)), recursive: true, cancellationToken: cancellationToken).ConfigureAwait(false); progress.Report(96); -- cgit v1.2.3