From ea54ade9bfcb51809797edf940b04d23b3c2eeb0 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 30 May 2024 00:25:51 +0300 Subject: [PATCH] New: Refresh cache for tracked queue on series add --- .../TrackedDownloadService.cs | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs index 1c06d369c..2f789f23b 100644 --- a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs +++ b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs @@ -28,6 +28,7 @@ namespace NzbDrone.Core.Download.TrackedDownloads public class TrackedDownloadService : ITrackedDownloadService, IHandle, + IHandle, IHandle { private readonly IParsingService _parsingService; @@ -278,12 +279,29 @@ namespace NzbDrone.Core.Download.TrackedDownloads } } + public void Handle(SeriesAddedEvent message) + { + var cachedItems = _cache.Values + .Where(t => + t.RemoteEpisode?.Series == null || + message.Series?.TvdbId == t.RemoteEpisode.Series.TvdbId) + .ToList(); + + if (cachedItems.Any()) + { + cachedItems.ForEach(UpdateCachedItem); + + _eventAggregator.PublishEvent(new TrackedDownloadRefreshedEvent(GetTrackedDownloads())); + } + } + public void Handle(SeriesDeletedEvent message) { - var cachedItems = _cache.Values.Where(t => - t.RemoteEpisode?.Series != null && - message.Series.Any(s => s.Id == t.RemoteEpisode.Series.Id)) - .ToList(); + var cachedItems = _cache.Values + .Where(t => + t.RemoteEpisode?.Series != null && + message.Series.Any(s => s.Id == t.RemoteEpisode.Series.Id || s.TvdbId == t.RemoteEpisode.Series.TvdbId)) + .ToList(); if (cachedItems.Any()) {