From ae2efbc116ffd0958b70c15223d061f01b3ff7b9 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 17 Jan 2019 18:47:16 -0800 Subject: [PATCH] Fixed: QueueSpecification failing when an unknown item is in the queue --- .../DecisionEngine/Specifications/QueueSpecification.cs | 7 +++++-- src/NzbDrone.Core/Parser/Model/RemoteEpisode.cs | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs index 5973b3725..782e4df7c 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/QueueSpecification.cs @@ -31,8 +31,11 @@ namespace NzbDrone.Core.DecisionEngine.Specifications public Decision IsSatisfiedBy(RemoteEpisode subject, SearchCriteriaBase searchCriteria) { var queue = _queueService.GetQueue(); - var matchingSeries = queue.Where(q => q.RemoteEpisode.Series != null && q.RemoteEpisode.Series.Id == subject.Series.Id); - var matchingEpisode = matchingSeries.Where(q => q.RemoteEpisode.Episodes.Select(e => e.Id).Intersect(subject.Episodes.Select(e => e.Id)).Any()); + var matchingEpisode = queue.Where(q => q.RemoteEpisode != null && + q.RemoteEpisode.Series != null && + q.RemoteEpisode.Series.Id == subject.Series.Id && + q.RemoteEpisode.Episodes.Select(e => e.Id).Intersect(subject.Episodes.Select(e => e.Id)).Any()) + .ToList(); foreach (var queueItem in matchingEpisode) { diff --git a/src/NzbDrone.Core/Parser/Model/RemoteEpisode.cs b/src/NzbDrone.Core/Parser/Model/RemoteEpisode.cs index 1952ebc0e..5cd305016 100644 --- a/src/NzbDrone.Core/Parser/Model/RemoteEpisode.cs +++ b/src/NzbDrone.Core/Parser/Model/RemoteEpisode.cs @@ -16,6 +16,11 @@ namespace NzbDrone.Core.Parser.Model public TorrentSeedConfiguration SeedConfiguration { get; set; } public int PreferredWordScore { get; set; } + public RemoteEpisode() + { + Episodes = new List(); + } + public bool IsRecentEpisode() { return Episodes.Any(e => e.AirDateUtc >= DateTime.UtcNow.Date.AddDays(-14));