mirror of
https://github.com/Readarr/Readarr
synced 2026-01-11 10:06:34 +01:00
New: Improve All Authors call by using dictionary for stats iteration
(cherry picked from commit e792db4d3355fedd3ea9e35b3f5e1e30394d9ee3) Closes #3230
This commit is contained in:
parent
6cfaab07ba
commit
5704adfbc5
1 changed files with 4 additions and 7 deletions
|
|
@ -127,7 +127,7 @@ public List<AuthorResource> AllAuthors()
|
|||
|
||||
MapCoversToLocal(authorResources.ToArray());
|
||||
LinkNextPreviousBooks(authorResources.ToArray());
|
||||
LinkAuthorStatistics(authorResources, authorStats);
|
||||
LinkAuthorStatistics(authorResources, authorStats.ToDictionary(x => x.AuthorId));
|
||||
LinkRootFolderPath(authorResources.ToArray());
|
||||
|
||||
return authorResources;
|
||||
|
|
@ -200,17 +200,14 @@ private void FetchAndLinkAuthorStatistics(AuthorResource resource)
|
|||
LinkAuthorStatistics(resource, _authorStatisticsService.AuthorStatistics(resource.Id));
|
||||
}
|
||||
|
||||
private void LinkAuthorStatistics(List<AuthorResource> resources, List<AuthorStatistics> authorStatistics)
|
||||
private void LinkAuthorStatistics(List<AuthorResource> resources, Dictionary<int, AuthorStatistics> authorStatistics)
|
||||
{
|
||||
foreach (var author in resources)
|
||||
{
|
||||
var stats = authorStatistics.SingleOrDefault(ss => ss.AuthorId == author.Id);
|
||||
if (stats == null)
|
||||
if (authorStatistics.TryGetValue(author.Id, out var stats))
|
||||
{
|
||||
continue;
|
||||
LinkAuthorStatistics(author, stats);
|
||||
}
|
||||
|
||||
LinkAuthorStatistics(author, stats);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue