From a3f7b169c987305d8b09f2d51080d5354c189bbd Mon Sep 17 00:00:00 2001 From: Qstick Date: Tue, 23 Mar 2021 21:21:38 -0400 Subject: [PATCH] Fixed: Sync on a mass Indexer edit --- .../Applications/ApplicationService.cs | 10 ++++++++++ .../Events/ProviderBulkUpdatedEvent.cs | 15 +++++++++++++++ .../ThingiProvider/ProviderFactory.cs | 1 + 3 files changed, 26 insertions(+) create mode 100644 src/NzbDrone.Core/ThingiProvider/Events/ProviderBulkUpdatedEvent.cs diff --git a/src/NzbDrone.Core/Applications/ApplicationService.cs b/src/NzbDrone.Core/Applications/ApplicationService.cs index de15de6c0..7926a6bf2 100644 --- a/src/NzbDrone.Core/Applications/ApplicationService.cs +++ b/src/NzbDrone.Core/Applications/ApplicationService.cs @@ -16,6 +16,7 @@ namespace NzbDrone.Core.Applications IHandleAsync>, IHandleAsync>, IHandleAsync>, + IHandleAsync>, IHandleAsync, IExecute { @@ -86,6 +87,15 @@ namespace NzbDrone.Core.Applications SyncIndexers(enabledApps, indexers); } + public void HandleAsync(ProviderBulkUpdatedEvent message) + { + var enabledApps = _applicationsFactory.SyncEnabled(); + + var indexers = message.Definitions.Select(d => (IndexerDefinition)d).ToList(); + + SyncIndexers(enabledApps, indexers); + } + public void Execute(ApplicationIndexerSyncCommand message) { var enabledApps = _applicationsFactory.SyncEnabled(); diff --git a/src/NzbDrone.Core/ThingiProvider/Events/ProviderBulkUpdatedEvent.cs b/src/NzbDrone.Core/ThingiProvider/Events/ProviderBulkUpdatedEvent.cs new file mode 100644 index 000000000..48a9f913e --- /dev/null +++ b/src/NzbDrone.Core/ThingiProvider/Events/ProviderBulkUpdatedEvent.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using NzbDrone.Common.Messaging; + +namespace NzbDrone.Core.ThingiProvider.Events +{ + public class ProviderBulkUpdatedEvent : IEvent + { + public IEnumerable Definitions { get; private set; } + + public ProviderBulkUpdatedEvent(IEnumerable definitions) + { + Definitions = definitions; + } + } +} diff --git a/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs b/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs index 9cec3007f..010f9fc6f 100644 --- a/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs +++ b/src/NzbDrone.Core/ThingiProvider/ProviderFactory.cs @@ -113,6 +113,7 @@ namespace NzbDrone.Core.ThingiProvider public virtual void Update(IEnumerable definitions) { _providerRepository.UpdateMany(definitions.ToList()); + _eventAggregator.PublishEvent(new ProviderBulkUpdatedEvent(definitions)); } public void Delete(int id)