From ac6da13a8206c06f974328080cc741e220225cf4 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sat, 2 Sep 2023 15:17:06 -0500 Subject: [PATCH] Avoid double ToList conversion in ImportList fetch --- .../ImportLists/FetchAndParseImportListService.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/NzbDrone.Core/ImportLists/FetchAndParseImportListService.cs b/src/NzbDrone.Core/ImportLists/FetchAndParseImportListService.cs index 40dc132b3..d47aeb71f 100644 --- a/src/NzbDrone.Core/ImportLists/FetchAndParseImportListService.cs +++ b/src/NzbDrone.Core/ImportLists/FetchAndParseImportListService.cs @@ -102,7 +102,7 @@ public ImportListFetchResult Fetch() if (!importListReports.AnyFailure) { var alreadyMapped = result.Movies.Where(x => importListReports.Movies.Any(r => r.TmdbId == x.TmdbId)); - var listMovies = MapMovieReports(importListReports.Movies.Where(x => result.Movies.All(r => r.TmdbId != x.TmdbId)).ToList()).Where(x => x.TmdbId > 0).ToList(); + var listMovies = MapMovieReports(importListReports.Movies.Where(x => result.Movies.All(r => r.TmdbId != x.TmdbId))).Where(x => x.TmdbId > 0).ToList(); listMovies.AddRange(alreadyMapped); listMovies = listMovies.DistinctBy(x => x.TmdbId).ToList(); @@ -160,9 +160,11 @@ public ImportListFetchResult FetchSingleList(ImportListDefinition definition) if (!importListReports.AnyFailure) { - var listMovies = MapMovieReports(importListReports.Movies).Where(x => x.TmdbId > 0).ToList(); + var listMovies = MapMovieReports(importListReports.Movies) + .Where(x => x.TmdbId > 0) + .DistinctBy(x => x.TmdbId) + .ToList(); - listMovies = listMovies.DistinctBy(x => x.TmdbId).ToList(); listMovies.ForEach(m => m.ListId = importList.Definition.Id); result.Movies.AddRange(listMovies); @@ -186,7 +188,7 @@ public ImportListFetchResult FetchSingleList(ImportListDefinition definition) return result; } - private List MapMovieReports(List reports) + private List MapMovieReports(IEnumerable reports) { var mappedMovies = reports.Select(m => _movieSearch.MapMovieToTmdbMovie(new MovieMetadata { Title = m.Title, TmdbId = m.TmdbId, ImdbId = m.ImdbId, Year = m.Year })) .Where(x => x != null)