From a790ec237b25542acc3e4e898e2f0196212a7fcb Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 9 Sep 2013 14:24:18 -0400 Subject: [PATCH] improve manual artist refresh --- MediaBrowser.Api/ItemRefreshService.cs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs index d71f171a4a..cb1ed7c9ba 100644 --- a/MediaBrowser.Api/ItemRefreshService.cs +++ b/MediaBrowser.Api/ItemRefreshService.cs @@ -114,6 +114,21 @@ namespace MediaBrowser.Api var cancellationToken = CancellationToken.None; + var albums = _libraryManager.RootFolder + .RecursiveChildren + .OfType() + .Where(i => i.HasArtist(item.Name)) + .ToList(); + + var musicArtists = albums + .Select(i => i.Parent) + .OfType() + .ToList(); + + var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new Progress(), cancellationToken, true, request.Forced)); + + await Task.WhenAll(musicArtistRefreshTasks).ConfigureAwait(false); + try { await item.RefreshMetadata(cancellationToken, forceRefresh: request.Forced).ConfigureAwait(false); @@ -122,15 +137,6 @@ namespace MediaBrowser.Api { Logger.ErrorException("Error refreshing library", ex); } - - // Refresh albums - var refreshTasks = _libraryManager.RootFolder - .RecursiveChildren - .OfType() - .Where(i => i.HasArtist(item.Name)) - .Select(i => i.ValidateChildren(new Progress(), cancellationToken, true, request.Forced)); - - await Task.WhenAll(refreshTasks).ConfigureAwait(false); } public void Post(RefreshGenre request)