private async Task RefreshArtist(RefreshItem request, MusicArtist item) { 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 options = GetRefreshOptions(request); var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new Progress <double>(), cancellationToken, options, true)); await Task.WhenAll(musicArtistRefreshTasks).ConfigureAwait(false); try { await item.RefreshMetadata(options, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { Logger.ErrorException("Error refreshing library", ex); } }
private async Task RefreshArtist(MusicArtist item, MetadataRefreshOptions options, CancellationToken cancellationToken) { var albums = _libraryManager .GetItemList(new InternalItemsQuery { IncludeItemTypes = new[] { nameof(MusicAlbum) }, ArtistIds = new[] { item.Id }, DtoOptions = new DtoOptions(false) { EnableImages = false } }) .OfType <MusicAlbum>(); var musicArtists = albums .Select(i => i.MusicArtist) .Where(i => i != null); var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new SimpleProgress <double>(), cancellationToken, options, true)); await Task.WhenAll(musicArtistRefreshTasks).ConfigureAwait(false); try { await item.RefreshMetadata(options, cancellationToken).ConfigureAwait(false); } catch (Exception ex) { _logger.LogError(ex, "Error refreshing library"); } }
private async Task RefreshArtist(MusicArtist item, MetadataRefreshOptions options) { var cancellationToken = CancellationToken.None; var albums = _libraryManagerFactory() .GetItemList(new InternalItemsQuery { IncludeItemTypes = new[] { typeof(MusicAlbum).Name }, ArtistIds = new[] { item.Id.ToString("N") } }) .OfType <MusicAlbum>() .ToList(); var musicArtists = albums .Select(i => i.MusicArtist) .Where(i => i != null) .ToList(); var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new Progress <double>(), cancellationToken, options, true)); await Task.WhenAll(musicArtistRefreshTasks).ConfigureAwait(false); try { await item.RefreshMetadata(options, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { _logger.ErrorException("Error refreshing library", ex); } }