From f7925ff5d612c24f5846acc57db1c4afca3b94e2 Mon Sep 17 00:00:00 2001 From: ta264 Date: Wed, 4 Aug 2021 21:58:33 +0100 Subject: [PATCH] Fixed: NullReferenceException manually importing an unparseable release Fixes Sentry LIDARR-GY (cherry picked from commit 702480852e742c39edacbe40977837381dc884ba) --- .../TrackImport/Manual/ManualImportService.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs index 33f949e73..89792ef3c 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs @@ -384,7 +384,17 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Manual } } - if (groupedTrackedDownload.Select(c => c.ImportResult).Count(c => c.Result == ImportResultType.Imported) >= Math.Max(1, trackedDownload.RemoteAlbum.Albums.Count)) + var remoteTrackCount = Math.Max(1, + trackedDownload.RemoteAlbum?.Albums.Sum(x => + x.AlbumReleases.Value.Where(y => y.Monitored).Sum(z => z.TrackCount)) ?? 1); + + var importResults = groupedTrackedDownload.Select(x => x.ImportResult).ToList(); + var importedTrackCount = importResults.Where(c => c.Result == ImportResultType.Imported) + .SelectMany(c => c.ImportDecision.Item.Tracks) + .Count(); + var allTracksImported = importResults.All(c => c.Result == ImportResultType.Imported) || importedTrackCount >= remoteTrackCount; + + if (allTracksImported) { trackedDownload.State = TrackedDownloadState.Imported; _eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload, importArtist.Id));