Fixed: Sync on a mass Indexer edit

pull/32/head
Qstick 4 years ago
parent 6f25e1e6a2
commit a3f7b169c9

@ -16,6 +16,7 @@ namespace NzbDrone.Core.Applications
IHandleAsync<ProviderDeletedEvent<IIndexer>>, IHandleAsync<ProviderDeletedEvent<IIndexer>>,
IHandleAsync<ProviderAddedEvent<IApplication>>, IHandleAsync<ProviderAddedEvent<IApplication>>,
IHandleAsync<ProviderUpdatedEvent<IIndexer>>, IHandleAsync<ProviderUpdatedEvent<IIndexer>>,
IHandleAsync<ProviderBulkUpdatedEvent<IIndexer>>,
IHandleAsync<ApiKeyChangedEvent>, IHandleAsync<ApiKeyChangedEvent>,
IExecute<ApplicationIndexerSyncCommand> IExecute<ApplicationIndexerSyncCommand>
{ {
@ -86,6 +87,15 @@ namespace NzbDrone.Core.Applications
SyncIndexers(enabledApps, indexers); SyncIndexers(enabledApps, indexers);
} }
public void HandleAsync(ProviderBulkUpdatedEvent<IIndexer> message)
{
var enabledApps = _applicationsFactory.SyncEnabled();
var indexers = message.Definitions.Select(d => (IndexerDefinition)d).ToList();
SyncIndexers(enabledApps, indexers);
}
public void Execute(ApplicationIndexerSyncCommand message) public void Execute(ApplicationIndexerSyncCommand message)
{ {
var enabledApps = _applicationsFactory.SyncEnabled(); var enabledApps = _applicationsFactory.SyncEnabled();

@ -0,0 +1,15 @@
using System.Collections.Generic;
using NzbDrone.Common.Messaging;
namespace NzbDrone.Core.ThingiProvider.Events
{
public class ProviderBulkUpdatedEvent<TProvider> : IEvent
{
public IEnumerable<ProviderDefinition> Definitions { get; private set; }
public ProviderBulkUpdatedEvent(IEnumerable<ProviderDefinition> definitions)
{
Definitions = definitions;
}
}
}

@ -113,6 +113,7 @@ namespace NzbDrone.Core.ThingiProvider
public virtual void Update(IEnumerable<TProviderDefinition> definitions) public virtual void Update(IEnumerable<TProviderDefinition> definitions)
{ {
_providerRepository.UpdateMany(definitions.ToList()); _providerRepository.UpdateMany(definitions.ToList());
_eventAggregator.PublishEvent(new ProviderBulkUpdatedEvent<TProvider>(definitions));
} }
public void Delete(int id) public void Delete(int id)

Loading…
Cancel
Save