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 69a84c46a1..ad7594c8d8 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 503ad43710..24c2fdd748 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 79fabf7ed2..a97e55e8bc 100644 --- a/src/NzbDrone.Api/Calendar/CalendarModule.cs +++ b/src/NzbDrone.Api/Calendar/CalendarModule.cs @@ -5,6 +5,7 @@ using NzbDrone.Api.Extensions; using NzbDrone.Core.Messaging.Commands; using NzbDrone.Core.Tv; +using NzbDrone.SignalR; namespace NzbDrone.Api.Calendar { @@ -13,10 +14,10 @@ public class CalendarModule : EpisodeModuleWithSignalR 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 ddb5ff9567..4afcf2c804 100644 --- a/src/NzbDrone.Api/Commands/CommandModule.cs +++ b/src/NzbDrone.Api/Commands/CommandModule.cs @@ -10,6 +10,7 @@ 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 @@ public class CommandModule : NzbDroneRestModuleWithSignalR : NzbDron 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 @@ public void Handle(ModelEvent message) 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 @@ protected void BroadcastResourceChange(ModelAction action, TResource resource) 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 @@ protected void BroadcastResourceChange(ModelAction action) 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 1c735050ab..69dc0a9ad9 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 @@ public class QueueModule : NzbDroneRestModuleWithSignalR()); CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); } diff --git a/src/NzbDrone.Core/Jobs/TaskManager.cs b/src/NzbDrone.Core/Jobs/TaskManager.cs index 51275c91f9..46c6f79d5e 100644 --- a/src/NzbDrone.Core/Jobs/TaskManager.cs +++ b/src/NzbDrone.Core/Jobs/TaskManager.cs @@ -102,9 +102,6 @@ public void Handle(ApplicationStartedEvent message) 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 @@ public void HandleAsync(ConfigSavedEvent message) 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 d989affc3f..0000000000 --- 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 ad9160e06b..0e50162e37 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 8152380222..2a25333761 100644 --- a/src/NzbDrone.SignalR/NzbDronePersistentConnection.cs +++ b/src/NzbDrone.SignalR/NzbDronePersistentConnection.cs @@ -4,7 +4,12 @@ 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 @@ private IPersistentConnectionContext Context } } - 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