public bool IsSubscribed(QueuePlanEventType eventType) { return subscriptions.ContainsKey(eventType); }
public void Subscribe(QueuePlanEventType eventType, QueuePlanSubscribtionArgs args = null) { if (!IsSubscribed(eventType)) { lock (subscriptions) { logger.Debug("Подписка на событие [{0}] для [{1}]", eventType, sessionId); switch (eventType) { case QueuePlanEventType.CallClient: QueueInstance.OnCallClient += queueInstance_OnCallClient; subscriptions[eventType] = new Subscribtion() { EventHandler = queueInstance_OnCallClient, Args = args }; break; case QueuePlanEventType.ClientRequestUpdated: QueueInstance.OnClientRequestUpdated += queueInstance_OnClientRequestUpdated; subscriptions[eventType] = new Subscribtion() { EventHandler = queueInstance_OnClientRequestUpdated, Args = args }; break; case QueuePlanEventType.CurrentClientRequestPlanUpdated: QueueInstance.OnCurrentClientRequestPlanUpdated += queueInstance_OnCurrentClientRequestPlanUpdated; subscriptions[eventType] = new Subscribtion() { EventHandler = queueInstance_OnCurrentClientRequestPlanUpdated, Args = args }; break; case QueuePlanEventType.OperatorPlanMetricsUpdated: QueueInstance.OnOperatorPlanMetricsUpdated += queueInstance_OnOperatorPlanMetricsUpdated; subscriptions[eventType] = new Subscribtion() { EventHandler = queueInstance_OnOperatorPlanMetricsUpdated, Args = args }; break; case QueuePlanEventType.ConfigUpdated: QueueInstance.OnConfigUpdated += queueInstance_OnConfigUpdated; subscriptions[eventType] = new Subscribtion() { EventHandler = queueInstance_OnConfigUpdated, Args = args }; break; case QueuePlanEventType.Event: QueueInstance.OnEvent += queueInstance_OnEvent; subscriptions[eventType] = new Subscribtion() { EventHandler = queueInstance_OnEvent, Args = args }; break; } } } }
public void UnSubscribe(QueuePlanEventType eventType) { if (IsSubscribed(eventType)) { lock (subscriptions) { logger.Debug("Отписка от события [{0}] для [{1}]", eventType, sessionId); switch (eventType) { case QueuePlanEventType.CallClient: QueueInstance.OnCallClient -= queueInstance_OnCallClient; break; case QueuePlanEventType.ClientRequestUpdated: QueueInstance.OnClientRequestUpdated -= queueInstance_OnClientRequestUpdated; break; case QueuePlanEventType.CurrentClientRequestPlanUpdated: QueueInstance.OnCurrentClientRequestPlanUpdated -= queueInstance_OnCurrentClientRequestPlanUpdated; break; case QueuePlanEventType.OperatorPlanMetricsUpdated: QueueInstance.OnOperatorPlanMetricsUpdated -= queueInstance_OnOperatorPlanMetricsUpdated; break; case QueuePlanEventType.ConfigUpdated: QueueInstance.OnConfigUpdated -= queueInstance_OnConfigUpdated; break; case QueuePlanEventType.Event: QueueInstance.OnEvent -= queueInstance_OnEvent; break; } subscriptions.Remove(eventType); } } }