Files
cms_thermo_active/Step/Controllers/SignalR/NcHub.cs
T
2018-02-20 17:08:14 +01:00

82 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNet.SignalR;
using Step.Attributes;
using Step.NC;
using TeamDev.SDK.MVVM;
using static Step.Utils.Constants;
namespace Step.Controllers.SignalR
{
public class NcHub : Hub
{
public static List<string> ConnectedClients = new List<string>();
public static bool NewConnectedClients = false;
public override Task OnConnected()
{
Groups.Add(Context.ConnectionId, "ncData");
NewConnectedClients = true;
ConnectedClients.Add(Context.ConnectionId);
// Resends data to all the clients
MessageServices.Current.Publish(BROADCAST_DATA);
return base.OnConnected();
}
public override Task OnReconnected()
{
Groups.Add(Context.ConnectionId, "ncData");
NewConnectedClients = true;
ConnectedClients.Add(Context.ConnectionId);
// Resends data to all the clients
MessageServices.Current.Publish(BROADCAST_DATA);
return base.OnReconnected();
}
public override Task OnDisconnected(bool stopCalled)
{
Groups.Remove(Context.ConnectionId, "ncData");
ConnectedClients.Remove(Context.ConnectionId);
return base.OnDisconnected(stopCalled);
}
public void PutPowerOnData(uint id)
{
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
ncHandler.PutPowerOnData(id);
}
}
public void RefreshAllAlarms()
{
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
ncHandler.RefreshAllAlarms();
}
MessageServices.Current.Publish(SHOW_MSG_UI, null, "Refresh All Alarms.");
}
public void RefreshAlarm(string id)
{
MessageServices.Current.Publish(SHOW_MSG_UI, null, "Refresh Single Alarm. ID: " + id);
}
public void RecoveryProcedure(string id)
{
MessageServices.Current.Publish(SHOW_MSG_UI, null, "Recovery Alarm. ID: " + id);
}
}
}