コード例 #1
0
 public bool IsSubscribed(QueuePlanEventType eventType)
 {
     return subscriptions.ContainsKey(eventType);
 }
コード例 #2
0
        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;
                    }
                }
            }
        }
コード例 #3
0
        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);
                }
            }
        }