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 ConnectedClients = new List(); 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); } } }