public void NotifyServer(EventDataType eventData) { lock (locker) { if ((build && eventData.EventMessage != ActionType.Cancel.ToString()) || (!build && eventData.EventMessage == ActionType.Cancel.ToString())) return; if (eventData.EventMessage == ActionType.Triggered.ToString()) { build = true; eventData.Minutes = time * interval / 1000; Timer = new Timer(interval); Timer.Elapsed += (sender, e) => Timer_Elapsed(sender, e, eventData.ClientName); Timer.Enabled = true; Timer.Start(); } else//cancel { time = timeInit; build = false; Timer.Stop(); } SendNotification(eventData); } }
public void NotifyServer(EventDataType eventData) { lock (locker) { var inactiveClients = new List<string>(); foreach (var client in clients) { if (client.Key != eventData.ClientName) { try { client.Value.BroadcastToClient(eventData); } catch (Exception ex) { inactiveClients.Add(client.Key); } } } if (inactiveClients.Count > 0) { foreach (var client in inactiveClients) { clients.Remove(client); } } } }
private static void SendNotification(EventDataType eventData) { var inactiveClients = new List<string>(); foreach (var client in clients) { //if (client.Key != eventData.ClientName) { try { client.Value.BroadcastToClient(eventData); } catch (Exception ex) { inactiveClients.Add(client.Key); } } } if (inactiveClients.Count > 0) { foreach (var client in inactiveClients) { clients.Remove(client); } } }
void Timer_Elapsed(object sender, ElapsedEventArgs e, string name) { time--; var eventData = new EventDataType { ClientName = name, EventMessage = time > 0 ? ActionType.Triggered.ToString() : ActionType.Build.ToString(), Minutes = time * interval / 1000 }; if (time == 0) { time = timeInit; build = false; Timer.Stop(); //force build ForceBuild("172.21.2.66", "Vacation Scheduler"); } SendNotification(eventData); }