aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/ItemRefreshService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/ItemRefreshService.cs')
-rw-r--r--MediaBrowser.Api/ItemRefreshService.cs14
1 files changed, 13 insertions, 1 deletions
diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs
index e31292e9d..d71f171a4 100644
--- a/MediaBrowser.Api/ItemRefreshService.cs
+++ b/MediaBrowser.Api/ItemRefreshService.cs
@@ -1,5 +1,6 @@
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library;
using ServiceStack.ServiceHost;
using System;
@@ -111,14 +112,25 @@ namespace MediaBrowser.Api
{
var item = await GetArtist(request.Name, _libraryManager).ConfigureAwait(false);
+ var cancellationToken = CancellationToken.None;
+
try
{
- await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false);
+ await item.RefreshMetadata(cancellationToken, forceRefresh: request.Forced).ConfigureAwait(false);
}
catch (Exception 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)