From a7dce5251f8de5a45cd6339c37673c68e3191036 Mon Sep 17 00:00:00 2001 From: Qstick Date: Tue, 29 Dec 2020 22:26:50 -0500 Subject: [PATCH] Fixed: Only Sync Apps when Sync Enabled --- .../Applications/ApplicationService.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/NzbDrone.Core/Applications/ApplicationService.cs b/src/NzbDrone.Core/Applications/ApplicationService.cs index af6809c54..af785323e 100644 --- a/src/NzbDrone.Core/Applications/ApplicationService.cs +++ b/src/NzbDrone.Core/Applications/ApplicationService.cs @@ -1,3 +1,4 @@ +using System.Linq; using NLog; using NzbDrone.Core.Indexers; using NzbDrone.Core.Messaging.Commands; @@ -26,7 +27,7 @@ namespace NzbDrone.Core.Applications { var appDefinition = (ApplicationDefinition)message.Definition; - if (message.Definition.Enable) + if (appDefinition.Enable) { var app = _applicationsFactory.GetInstance(appDefinition); @@ -36,9 +37,9 @@ namespace NzbDrone.Core.Applications public void HandleAsync(ProviderAddedEvent message) { - var enabledApps = _applicationsFactory.GetAvailableProviders(); + var enabledApps = _applicationsFactory.GetAvailableProviders() + .Where(n => ((ApplicationDefinition)n.Definition).Enable); - // TODO: Only apps with Sync enabled foreach (var app in enabledApps) { app.AddIndexer((IndexerDefinition)message.Definition); @@ -47,9 +48,9 @@ namespace NzbDrone.Core.Applications public void HandleAsync(ProviderDeletedEvent message) { - var enabledApps = _applicationsFactory.GetAvailableProviders(); + var enabledApps = _applicationsFactory.GetAvailableProviders() + .Where(n => ((ApplicationDefinition)n.Definition).SyncLevel == ApplicationSyncLevel.FullSync); - // TODO: Only remove indexers when Sync is Full foreach (var app in enabledApps) { app.RemoveIndexer(message.ProviderId); @@ -58,9 +59,9 @@ namespace NzbDrone.Core.Applications public void HandleAsync(ProviderUpdatedEvent message) { - var enabledApps = _applicationsFactory.GetAvailableProviders(); + var enabledApps = _applicationsFactory.GetAvailableProviders() + .Where(n => ((ApplicationDefinition)n.Definition).SyncLevel == ApplicationSyncLevel.FullSync); - // TODO: Only upate indexers when Sync is Full foreach (var app in enabledApps) { app.UpdateIndexer((IndexerDefinition)message.Definition);