New: Improve All Artits call by using dictionary for stats iteration

(cherry picked from commit e792db4d3355fedd3ea9e35b3f5e1e30394d9ee3)

Closes #4480
pull/4483/head
Qstick 4 months ago committed by Bogdan
parent ba4b93b611
commit 82d9228ee9

@ -145,7 +145,7 @@ namespace Lidarr.Api.V1.Artist
MapCoversToLocal(artistsResources.ToArray()); MapCoversToLocal(artistsResources.ToArray());
LinkNextPreviousAlbums(artistsResources.ToArray()); LinkNextPreviousAlbums(artistsResources.ToArray());
LinkArtistStatistics(artistsResources, artistStats); LinkArtistStatistics(artistsResources, artistStats.ToDictionary(x => x.ArtistId));
artistsResources.ForEach(LinkRootFolderPath); artistsResources.ForEach(LinkRootFolderPath);
// PopulateAlternateTitles(seriesResources); // PopulateAlternateTitles(seriesResources);
@ -219,17 +219,14 @@ namespace Lidarr.Api.V1.Artist
LinkArtistStatistics(resource, _artistStatisticsService.ArtistStatistics(resource.Id)); LinkArtistStatistics(resource, _artistStatisticsService.ArtistStatistics(resource.Id));
} }
private void LinkArtistStatistics(List<ArtistResource> resources, List<ArtistStatistics> artistStatistics) private void LinkArtistStatistics(List<ArtistResource> resources, Dictionary<int, ArtistStatistics> artistStatistics)
{ {
foreach (var artist in resources) foreach (var artist in resources)
{ {
var stats = artistStatistics.SingleOrDefault(ss => ss.ArtistId == artist.Id); if (artistStatistics.TryGetValue(artist.Id, out var stats))
if (stats == null)
{ {
continue; LinkArtistStatistics(artist, stats);
} }
LinkArtistStatistics(artist, stats);
} }
} }

Loading…
Cancel
Save