From 82d9228ee997b43818f764620fccfc012f69d225 Mon Sep 17 00:00:00 2001 From: Qstick Date: Thu, 18 Jan 2024 18:51:43 -0600 Subject: [PATCH] New: Improve All Artits call by using dictionary for stats iteration (cherry picked from commit e792db4d3355fedd3ea9e35b3f5e1e30394d9ee3) Closes #4480 --- src/Lidarr.Api.V1/Artist/ArtistController.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Lidarr.Api.V1/Artist/ArtistController.cs b/src/Lidarr.Api.V1/Artist/ArtistController.cs index 41bd3f30f..24d7855e1 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistController.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistController.cs @@ -145,7 +145,7 @@ namespace Lidarr.Api.V1.Artist MapCoversToLocal(artistsResources.ToArray()); LinkNextPreviousAlbums(artistsResources.ToArray()); - LinkArtistStatistics(artistsResources, artistStats); + LinkArtistStatistics(artistsResources, artistStats.ToDictionary(x => x.ArtistId)); artistsResources.ForEach(LinkRootFolderPath); // PopulateAlternateTitles(seriesResources); @@ -219,17 +219,14 @@ namespace Lidarr.Api.V1.Artist LinkArtistStatistics(resource, _artistStatisticsService.ArtistStatistics(resource.Id)); } - private void LinkArtistStatistics(List resources, List artistStatistics) + private void LinkArtistStatistics(List resources, Dictionary artistStatistics) { foreach (var artist in resources) { - var stats = artistStatistics.SingleOrDefault(ss => ss.ArtistId == artist.Id); - if (stats == null) + if (artistStatistics.TryGetValue(artist.Id, out var stats)) { - continue; + LinkArtistStatistics(artist, stats); } - - LinkArtistStatistics(artist, stats); } }