diff --git a/src/Microsoft.AspNet.SignalR.Core/Microsoft.AspNet.SignalR.Core.csproj b/src/Microsoft.AspNet.SignalR.Core/Microsoft.AspNet.SignalR.Core.csproj
index 69a84c46a..ad7594c8d 100644
--- a/src/Microsoft.AspNet.SignalR.Core/Microsoft.AspNet.SignalR.Core.csproj
+++ b/src/Microsoft.AspNet.SignalR.Core/Microsoft.AspNet.SignalR.Core.csproj
@@ -43,9 +43,6 @@
4
-
- ..\packages\Microsoft.AspNet.SignalR.Client.2.1.1\lib\net40\Microsoft.AspNet.SignalR.Client.dll
-
False
..\packages\Newtonsoft.Json.6.0.4\lib\net40\Newtonsoft.Json.dll
diff --git a/src/Microsoft.AspNet.SignalR.Core/packages.config b/src/Microsoft.AspNet.SignalR.Core/packages.config
index 503ad4371..24c2fdd74 100644
--- a/src/Microsoft.AspNet.SignalR.Core/packages.config
+++ b/src/Microsoft.AspNet.SignalR.Core/packages.config
@@ -1,5 +1,4 @@
-
\ No newline at end of file
diff --git a/src/NzbDrone.Api/Calendar/CalendarModule.cs b/src/NzbDrone.Api/Calendar/CalendarModule.cs
index 79fabf7ed..a97e55e8b 100644
--- a/src/NzbDrone.Api/Calendar/CalendarModule.cs
+++ b/src/NzbDrone.Api/Calendar/CalendarModule.cs
@@ -5,6 +5,7 @@ using NzbDrone.Api.Episodes;
using NzbDrone.Api.Extensions;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Tv;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Calendar
{
@@ -13,10 +14,10 @@ namespace NzbDrone.Api.Calendar
private readonly IEpisodeService _episodeService;
private readonly SeriesRepository _seriesRepository;
- public CalendarModule(ICommandExecutor commandExecutor,
+ public CalendarModule(IBroadcastSignalRMessage signalRBroadcaster,
IEpisodeService episodeService,
SeriesRepository seriesRepository)
- : base(episodeService, commandExecutor, "calendar")
+ : base(episodeService, signalRBroadcaster, "calendar")
{
_episodeService = episodeService;
_seriesRepository = seriesRepository;
diff --git a/src/NzbDrone.Api/Commands/CommandModule.cs b/src/NzbDrone.Api/Commands/CommandModule.cs
index ddb5ff956..4afcf2c80 100644
--- a/src/NzbDrone.Api/Commands/CommandModule.cs
+++ b/src/NzbDrone.Api/Commands/CommandModule.cs
@@ -10,6 +10,7 @@ using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Commands.Tracking;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.ProgressMessaging;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Commands
@@ -20,8 +21,8 @@ namespace NzbDrone.Api.Commands
private readonly IContainer _container;
private readonly ITrackCommands _trackCommands;
- public CommandModule(ICommandExecutor commandExecutor, IContainer container, ITrackCommands trackCommands)
- : base(commandExecutor)
+ public CommandModule(ICommandExecutor commandExecutor,IBroadcastSignalRMessage signalRBroadcaster, IContainer container, ITrackCommands trackCommands)
+ : base(signalRBroadcaster)
{
_commandExecutor = commandExecutor;
_container = container;
diff --git a/src/NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs b/src/NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs
index 98af26a4a..09f54299f 100644
--- a/src/NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs
+++ b/src/NzbDrone.Api/EpisodeFiles/EpisodeFileModule.cs
@@ -2,16 +2,15 @@
using System.IO;
using System.Linq;
using NLog;
-using NzbDrone.Api.Episodes;
using NzbDrone.Api.REST;
using NzbDrone.Core.Datastore.Events;
using NzbDrone.Core.MediaFiles;
using NzbDrone.Api.Mapping;
using NzbDrone.Core.MediaFiles.Events;
-using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Tv;
using NzbDrone.Core.DecisionEngine;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.EpisodeFiles
{
@@ -24,13 +23,13 @@ namespace NzbDrone.Api.EpisodeFiles
private readonly IQualityUpgradableSpecification _qualityUpgradableSpecification;
private readonly Logger _logger;
- public EpisodeModule(ICommandExecutor commandExecutor,
+ public EpisodeModule(IBroadcastSignalRMessage signalRBroadcaster,
IMediaFileService mediaFileService,
IRecycleBinProvider recycleBinProvider,
ISeriesService seriesService,
IQualityUpgradableSpecification qualityUpgradableSpecification,
Logger logger)
- : base(commandExecutor)
+ : base(signalRBroadcaster)
{
_mediaFileService = mediaFileService;
_recycleBinProvider = recycleBinProvider;
diff --git a/src/NzbDrone.Api/Episodes/EpisodeModule.cs b/src/NzbDrone.Api/Episodes/EpisodeModule.cs
index 3dbb16064..4a5a649e5 100644
--- a/src/NzbDrone.Api/Episodes/EpisodeModule.cs
+++ b/src/NzbDrone.Api/Episodes/EpisodeModule.cs
@@ -4,6 +4,7 @@ using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Tv;
using NzbDrone.Api.Mapping;
using NzbDrone.Core.DecisionEngine;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Episodes
{
@@ -13,8 +14,9 @@ namespace NzbDrone.Api.Episodes
private readonly IEpisodeService _episodeService;
private readonly IQualityUpgradableSpecification _qualityUpgradableSpecification;
- public EpisodeModule(ICommandExecutor commandExecutor, ISeriesService seriesService, IEpisodeService episodeService, IQualityUpgradableSpecification qualityUpgradableSpecification)
- : base(episodeService, commandExecutor)
+ public EpisodeModule(IBroadcastSignalRMessage signalRBroadcaster, ISeriesService seriesService, IEpisodeService episodeService,
+ IQualityUpgradableSpecification qualityUpgradableSpecification)
+ : base(episodeService, signalRBroadcaster)
{
_seriesService = seriesService;
_episodeService = episodeService;
diff --git a/src/NzbDrone.Api/Episodes/EpisodeModuleWithSignalR.cs b/src/NzbDrone.Api/Episodes/EpisodeModuleWithSignalR.cs
index a1ba8b57f..7976767f8 100644
--- a/src/NzbDrone.Api/Episodes/EpisodeModuleWithSignalR.cs
+++ b/src/NzbDrone.Api/Episodes/EpisodeModuleWithSignalR.cs
@@ -2,9 +2,9 @@
using NzbDrone.Core.Datastore.Events;
using NzbDrone.Core.Download;
using NzbDrone.Core.MediaFiles.Events;
-using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Tv;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Episodes
{
@@ -14,16 +14,16 @@ namespace NzbDrone.Api.Episodes
{
private readonly IEpisodeService _episodeService;
- protected EpisodeModuleWithSignalR(IEpisodeService episodeService, ICommandExecutor commandExecutor)
- : base(commandExecutor)
+ protected EpisodeModuleWithSignalR(IEpisodeService episodeService, IBroadcastSignalRMessage signalRBroadcaster)
+ : base(signalRBroadcaster)
{
_episodeService = episodeService;
GetResourceById = GetEpisode;
}
- protected EpisodeModuleWithSignalR(IEpisodeService episodeService, ICommandExecutor commandExecutor, string resource)
- : base(commandExecutor, resource)
+ protected EpisodeModuleWithSignalR(IEpisodeService episodeService, IBroadcastSignalRMessage signalRBroadcaster, string resource)
+ : base(signalRBroadcaster, resource)
{
_episodeService = episodeService;
diff --git a/src/NzbDrone.Api/Health/HealthModule.cs b/src/NzbDrone.Api/Health/HealthModule.cs
index a876925d6..4928f3613 100644
--- a/src/NzbDrone.Api/Health/HealthModule.cs
+++ b/src/NzbDrone.Api/Health/HealthModule.cs
@@ -1,9 +1,8 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using NzbDrone.Core.Datastore.Events;
using NzbDrone.Core.HealthCheck;
-using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Health
{
@@ -12,8 +11,8 @@ namespace NzbDrone.Api.Health
{
private readonly IHealthCheckService _healthCheckService;
- public HealthModule(ICommandExecutor commandExecutor, IHealthCheckService healthCheckService)
- : base(commandExecutor)
+ public HealthModule(IBroadcastSignalRMessage signalRBroadcaster, IHealthCheckService healthCheckService)
+ : base(signalRBroadcaster)
{
_healthCheckService = healthCheckService;
GetResourceAll = GetHealth;
diff --git a/src/NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs b/src/NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs
index bb35273df..761503dfa 100644
--- a/src/NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs
+++ b/src/NzbDrone.Api/NzbDroneRestModuleWithSignalR.cs
@@ -1,7 +1,6 @@
using NzbDrone.Api.REST;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Datastore.Events;
-using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.SignalR;
@@ -11,17 +10,17 @@ namespace NzbDrone.Api
where TResource : RestResource, new()
where TModel : ModelBase
{
- private readonly ICommandExecutor _commandExecutor;
+ private readonly IBroadcastSignalRMessage _signalRBroadcaster;
- protected NzbDroneRestModuleWithSignalR(ICommandExecutor commandExecutor)
+ protected NzbDroneRestModuleWithSignalR(IBroadcastSignalRMessage signalRBroadcaster)
{
- _commandExecutor = commandExecutor;
+ _signalRBroadcaster = signalRBroadcaster;
}
- protected NzbDroneRestModuleWithSignalR(ICommandExecutor commandExecutor, string resource)
+ protected NzbDroneRestModuleWithSignalR(IBroadcastSignalRMessage signalRBroadcaster, string resource)
: base(resource)
{
- _commandExecutor = commandExecutor;
+ _signalRBroadcaster = signalRBroadcaster;
}
public void Handle(ModelEvent message)
@@ -34,6 +33,13 @@ namespace NzbDrone.Api
BroadcastResourceChange(message.Action, message.Model.Id);
}
+ protected void BroadcastResourceChange(ModelAction action, int id)
+ {
+ var resource = GetResourceById(id);
+ BroadcastResourceChange(action, resource);
+ }
+
+
protected void BroadcastResourceChange(ModelAction action, TResource resource)
{
var signalRMessage = new SignalRMessage
@@ -42,22 +48,10 @@ namespace NzbDrone.Api
Body = new ResourceChangeMessage(resource, action)
};
- _commandExecutor.PublishCommand(new BroadcastSignalRMessage(signalRMessage));
- }
-
- protected void BroadcastResourceChange(ModelAction action, int id)
- {
- var resource = GetResourceById(id);
-
- var signalRMessage = new SignalRMessage
- {
- Name = Resource,
- Body = new ResourceChangeMessage(resource, action)
- };
-
- _commandExecutor.PublishCommand(new BroadcastSignalRMessage(signalRMessage));
+ _signalRBroadcaster.BroadcastMessage(signalRMessage);
}
+
protected void BroadcastResourceChange(ModelAction action)
{
var signalRMessage = new SignalRMessage
@@ -66,7 +60,7 @@ namespace NzbDrone.Api
Body = new ResourceChangeMessage(action)
};
- _commandExecutor.PublishCommand(new BroadcastSignalRMessage(signalRMessage));
+ _signalRBroadcaster.BroadcastMessage(signalRMessage);
}
}
}
\ No newline at end of file
diff --git a/src/NzbDrone.Api/Queue/QueueModule.cs b/src/NzbDrone.Api/Queue/QueueModule.cs
index 1c735050a..69dc0a9ad 100644
--- a/src/NzbDrone.Api/Queue/QueueModule.cs
+++ b/src/NzbDrone.Api/Queue/QueueModule.cs
@@ -2,9 +2,9 @@
using System.Linq;
using NzbDrone.Core.Datastore.Events;
using NzbDrone.Core.Download.Pending;
-using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Queue;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Queue
{
@@ -14,8 +14,8 @@ namespace NzbDrone.Api.Queue
private readonly IQueueService _queueService;
private readonly IPendingReleaseService _pendingReleaseService;
- public QueueModule(ICommandExecutor commandExecutor, IQueueService queueService, IPendingReleaseService pendingReleaseService)
- : base(commandExecutor)
+ public QueueModule(IBroadcastSignalRMessage broadcastSignalRMessage, IQueueService queueService, IPendingReleaseService pendingReleaseService)
+ : base(broadcastSignalRMessage)
{
_queueService = queueService;
_pendingReleaseService = pendingReleaseService;
diff --git a/src/NzbDrone.Api/RootFolders/RootFolderModule.cs b/src/NzbDrone.Api/RootFolders/RootFolderModule.cs
index 36e034946..fa6934cb4 100644
--- a/src/NzbDrone.Api/RootFolders/RootFolderModule.cs
+++ b/src/NzbDrone.Api/RootFolders/RootFolderModule.cs
@@ -1,11 +1,9 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using FluentValidation;
-using FluentValidation.Results;
-using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.RootFolders;
using NzbDrone.Api.Mapping;
using NzbDrone.Core.Validation.Paths;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.RootFolders
{
@@ -14,11 +12,11 @@ namespace NzbDrone.Api.RootFolders
private readonly IRootFolderService _rootFolderService;
public RootFolderModule(IRootFolderService rootFolderService,
- ICommandExecutor commandExecutor,
+ IBroadcastSignalRMessage signalRBroadcaster,
RootFolderValidator rootFolderValidator,
PathExistsValidator pathExistsValidator,
DroneFactoryValidator droneFactoryValidator)
- : base(commandExecutor)
+ : base(signalRBroadcaster)
{
_rootFolderService = rootFolderService;
diff --git a/src/NzbDrone.Api/Series/SeriesModule.cs b/src/NzbDrone.Api/Series/SeriesModule.cs
index add57172e..d880b2a0b 100644
--- a/src/NzbDrone.Api/Series/SeriesModule.cs
+++ b/src/NzbDrone.Api/Series/SeriesModule.cs
@@ -15,6 +15,7 @@ using NzbDrone.Api.Mapping;
using NzbDrone.Core.Tv.Events;
using NzbDrone.Core.Validation.Paths;
using NzbDrone.Core.DataAugmentation.Scene;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Series
{
@@ -31,7 +32,7 @@ namespace NzbDrone.Api.Series
private readonly ISceneMappingService _sceneMappingService;
private readonly IMapCoversToLocal _coverMapper;
- public SeriesModule(ICommandExecutor commandExecutor,
+ public SeriesModule(IBroadcastSignalRMessage signalRBroadcaster,
ISeriesService seriesService,
ISeriesStatisticsService seriesStatisticsService,
ISceneMappingService sceneMappingService,
@@ -42,7 +43,7 @@ namespace NzbDrone.Api.Series
DroneFactoryValidator droneFactoryValidator,
SeriesAncestorValidator seriesAncestorValidator
)
- : base(commandExecutor)
+ : base(signalRBroadcaster)
{
_seriesService = seriesService;
_seriesStatisticsService = seriesStatisticsService;
diff --git a/src/NzbDrone.Api/Wanted/CutoffModule.cs b/src/NzbDrone.Api/Wanted/CutoffModule.cs
index 384ee43ac..eb7514798 100644
--- a/src/NzbDrone.Api/Wanted/CutoffModule.cs
+++ b/src/NzbDrone.Api/Wanted/CutoffModule.cs
@@ -1,10 +1,9 @@
-using System;
-using System.Linq;
+using System.Linq;
using NzbDrone.Api.Episodes;
using NzbDrone.Api.Extensions;
using NzbDrone.Core.Datastore;
-using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Tv;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Wanted
{
@@ -13,8 +12,8 @@ namespace NzbDrone.Api.Wanted
private readonly IEpisodeCutoffService _episodeCutoffService;
private readonly ISeriesRepository _seriesRepository;
- public CutoffModule(IEpisodeService episodeService, IEpisodeCutoffService episodeCutoffService, ISeriesRepository seriesRepository, ICommandExecutor commandExecutor)
- :base(episodeService, commandExecutor, "wanted/cutoff")
+ public CutoffModule(IEpisodeService episodeService, IEpisodeCutoffService episodeCutoffService, ISeriesRepository seriesRepository, IBroadcastSignalRMessage signalRBroadcaster)
+ : base(episodeService, signalRBroadcaster, "wanted/cutoff")
{
_episodeCutoffService = episodeCutoffService;
_seriesRepository = seriesRepository;
diff --git a/src/NzbDrone.Api/Wanted/MissingModule.cs b/src/NzbDrone.Api/Wanted/MissingModule.cs
index f551cdd67..78e4c4495 100644
--- a/src/NzbDrone.Api/Wanted/MissingModule.cs
+++ b/src/NzbDrone.Api/Wanted/MissingModule.cs
@@ -5,6 +5,7 @@ using NzbDrone.Api.Extensions;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Tv;
+using NzbDrone.SignalR;
namespace NzbDrone.Api.Wanted
{
@@ -13,8 +14,8 @@ namespace NzbDrone.Api.Wanted
private readonly IEpisodeService _episodeService;
private readonly ISeriesRepository _seriesRepository;
- public MissingModule(IEpisodeService episodeService, ISeriesRepository seriesRepository, ICommandExecutor commandExecutor)
- :base(episodeService, commandExecutor, "wanted/missing")
+ public MissingModule(IEpisodeService episodeService, ISeriesRepository seriesRepository, IBroadcastSignalRMessage signalRBroadcaster)
+ : base(episodeService, signalRBroadcaster, "wanted/missing")
{
_episodeService = episodeService;
_seriesRepository = seriesRepository;
diff --git a/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs b/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs
index 56bfd1b2a..88b1f86b0 100644
--- a/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs
+++ b/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs
@@ -79,8 +79,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands
[Test]
public void should_return_false_when_only_one_has_null_property()
{
- var command1 = new BroadcastSignalRMessage(null);
- var command2 = new BroadcastSignalRMessage(new SignalRMessage());
+ var command1 = new EpisodeSearchCommand(null);
+ var command2 = new EpisodeSearchCommand(new List());
CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse();
}
diff --git a/src/NzbDrone.Core/Jobs/TaskManager.cs b/src/NzbDrone.Core/Jobs/TaskManager.cs
index 51275c91f..46c6f79d5 100644
--- a/src/NzbDrone.Core/Jobs/TaskManager.cs
+++ b/src/NzbDrone.Core/Jobs/TaskManager.cs
@@ -102,9 +102,6 @@ namespace NzbDrone.Core.Jobs
public void Handle(CommandExecutedEvent message)
{
- if (message.Command.GetType().Name == "BroadcastSignalRMessage")
- return;
-
var scheduledTask = _scheduledTaskRepository.All().SingleOrDefault(c => c.TypeName == message.Command.GetType().FullName);
if (scheduledTask != null)
@@ -122,7 +119,7 @@ namespace NzbDrone.Core.Jobs
var downloadedEpisodes = _scheduledTaskRepository.GetDefinition(typeof(DownloadedEpisodesScanCommand));
downloadedEpisodes.Interval = _configService.DownloadedEpisodesScanInterval;
- _scheduledTaskRepository.UpdateMany(new List{ rss, downloadedEpisodes });
+ _scheduledTaskRepository.UpdateMany(new List { rss, downloadedEpisodes });
}
}
}
diff --git a/src/NzbDrone.SignalR/BroadcastSignalRMessage.cs b/src/NzbDrone.SignalR/BroadcastSignalRMessage.cs
deleted file mode 100644
index d989affc3..000000000
--- a/src/NzbDrone.SignalR/BroadcastSignalRMessage.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using NzbDrone.Core.Messaging.Commands;
-
-namespace NzbDrone.SignalR
-{
- public class BroadcastSignalRMessage : Command
- {
- public SignalRMessage Body { get; private set; }
-
- public BroadcastSignalRMessage(SignalRMessage body)
- {
- Body = body;
- }
- }
-}
\ No newline at end of file
diff --git a/src/NzbDrone.SignalR/NzbDrone.SignalR.csproj b/src/NzbDrone.SignalR/NzbDrone.SignalR.csproj
index ad9160e06..0e50162e3 100644
--- a/src/NzbDrone.SignalR/NzbDrone.SignalR.csproj
+++ b/src/NzbDrone.SignalR/NzbDrone.SignalR.csproj
@@ -50,7 +50,6 @@
Properties\SharedAssemblyInfo.cs
-
diff --git a/src/NzbDrone.SignalR/NzbDronePersistentConnection.cs b/src/NzbDrone.SignalR/NzbDronePersistentConnection.cs
index 815238022..2a2533376 100644
--- a/src/NzbDrone.SignalR/NzbDronePersistentConnection.cs
+++ b/src/NzbDrone.SignalR/NzbDronePersistentConnection.cs
@@ -4,7 +4,12 @@ using NzbDrone.Core.Messaging.Commands;
namespace NzbDrone.SignalR
{
- public sealed class NzbDronePersistentConnection : PersistentConnection, IExecute
+ public interface IBroadcastSignalRMessage
+ {
+ void BroadcastMessage(SignalRMessage message);
+ }
+
+ public sealed class NzbDronePersistentConnection : PersistentConnection, IBroadcastSignalRMessage
{
private IPersistentConnectionContext Context
{
@@ -14,9 +19,9 @@ namespace NzbDrone.SignalR
}
}
- public void Execute(BroadcastSignalRMessage message)
+ public void BroadcastMessage(SignalRMessage message)
{
- Context.Connection.Broadcast(message.Body);
+ Context.Connection.Broadcast(message);
}
}
}
\ No newline at end of file