mirror of https://github.com/lidarr/Lidarr
43 lines
1.3 KiB
C#
43 lines
1.3 KiB
C#
|
using System;
|
|||
|
using Microsoft.AspNet.SignalR;
|
|||
|
using Microsoft.AspNet.SignalR.Infrastructure;
|
|||
|
using NzbDrone.Api.SignalR;
|
|||
|
using NzbDrone.Common.Messaging;
|
|||
|
using NzbDrone.Common.Messaging.Events;
|
|||
|
using NzbDrone.Common.Messaging.Tracking;
|
|||
|
|
|||
|
namespace NzbDrone.Api.Commands
|
|||
|
{
|
|||
|
public class CommandConnection : NzbDronePersistentConnection,
|
|||
|
IHandleAsync<CommandStartedEvent>,
|
|||
|
IHandleAsync<CommandCompletedEvent>,
|
|||
|
IHandle<CommandFailedEvent>
|
|||
|
{
|
|||
|
public override string Resource
|
|||
|
{
|
|||
|
get { return "/Command"; }
|
|||
|
}
|
|||
|
|
|||
|
public void HandleAsync(CommandStartedEvent message)
|
|||
|
{
|
|||
|
BroadcastMessage(message.Command);
|
|||
|
}
|
|||
|
|
|||
|
public void HandleAsync(CommandCompletedEvent message)
|
|||
|
{
|
|||
|
BroadcastMessage(message.Command);
|
|||
|
}
|
|||
|
|
|||
|
public void Handle(CommandFailedEvent message)
|
|||
|
{
|
|||
|
BroadcastMessage(message.Command);
|
|||
|
}
|
|||
|
|
|||
|
private void BroadcastMessage(TrackedCommand trackedCommand)
|
|||
|
{
|
|||
|
var context = ((ConnectionManager)GlobalHost.ConnectionManager).GetConnection(GetType());
|
|||
|
context.Connection.Broadcast(trackedCommand);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|