aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-09 14:24:18 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-09 14:24:18 -0400
commita790ec237b25542acc3e4e898e2f0196212a7fcb (patch)
treed8cc157e4d67c2e8b8b9e3eb3c9348da23281d4b
parentb1b3a280a49813c0c1008c4cf410c12b520c02f6 (diff)
improve manual artist refresh
-rw-r--r--MediaBrowser.Api/ItemRefreshService.cs24
1 files changed, 15 insertions, 9 deletions
diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs
index d71f171a4..cb1ed7c9b 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<MusicAlbum>()
+ .Where(i => i.HasArtist(item.Name))
+ .ToList();
+
+ var musicArtists = albums
+ .Select(i => i.Parent)
+ .OfType<MusicArtist>()
+ .ToList();
+
+ var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new Progress<double>(), 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<MusicAlbum>()
- .Where(i => i.HasArtist(item.Name))
- .Select(i => i.ValidateChildren(new Progress<double>(), cancellationToken, true, request.Forced));
-
- await Task.WhenAll(refreshTasks).ConfigureAwait(false);
}
public void Post(RefreshGenre request)