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

This commit is contained in:
Qstick 2024-01-18 18:51:43 -06:00 committed by Mark McDowall
parent 2dbf5b5a71
commit e792db4d33
1 changed files with 4 additions and 7 deletions

View File

@ -113,7 +113,7 @@ namespace Sonarr.Api.V3.Series
} }
MapCoversToLocal(seriesResources.ToArray()); MapCoversToLocal(seriesResources.ToArray());
LinkSeriesStatistics(seriesResources, seriesStats); LinkSeriesStatistics(seriesResources, seriesStats.ToDictionary(x => x.SeriesId));
PopulateAlternateTitles(seriesResources); PopulateAlternateTitles(seriesResources);
seriesResources.ForEach(LinkRootFolderPath); seriesResources.ForEach(LinkRootFolderPath);
@ -229,19 +229,16 @@ namespace Sonarr.Api.V3.Series
LinkSeriesStatistics(resource, _seriesStatisticsService.SeriesStatistics(resource.Id)); LinkSeriesStatistics(resource, _seriesStatisticsService.SeriesStatistics(resource.Id));
} }
private void LinkSeriesStatistics(List<SeriesResource> resources, List<SeriesStatistics> seriesStatistics) private void LinkSeriesStatistics(List<SeriesResource> resources, Dictionary<int, SeriesStatistics> seriesStatistics)
{ {
foreach (var series in resources) foreach (var series in resources)
{ {
var stats = seriesStatistics.SingleOrDefault(ss => ss.SeriesId == series.Id); if (seriesStatistics.TryGetValue(series.Id, out var stats))
if (stats == null)
{ {
continue;
}
LinkSeriesStatistics(series, stats); LinkSeriesStatistics(series, stats);
} }
} }
}
private void LinkSeriesStatistics(SeriesResource resource, SeriesStatistics seriesStatistics) private void LinkSeriesStatistics(SeriesResource resource, SeriesStatistics seriesStatistics)
{ {