Преглед изворни кода

improve manual artist refresh

Luke Pulverenti пре 11 година
родитељ
комит
a790ec237b
1 измењених фајлова са 15 додато и 9 уклоњено
  1. 15 9
      MediaBrowser.Api/ItemRefreshService.cs

+ 15 - 9
MediaBrowser.Api/ItemRefreshService.cs

@@ -114,6 +114,21 @@ namespace MediaBrowser.Api
 
 
             var cancellationToken = CancellationToken.None;
             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
             try
             {
             {
                 await item.RefreshMetadata(cancellationToken, forceRefresh: request.Forced).ConfigureAwait(false);
                 await item.RefreshMetadata(cancellationToken, forceRefresh: request.Forced).ConfigureAwait(false);
@@ -122,15 +137,6 @@ namespace MediaBrowser.Api
             {
             {
                 Logger.ErrorException("Error refreshing library", ex);
                 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)
         public void Post(RefreshGenre request)