예제 #1
0
        public void RemoveDataSource(ValueDataSource dataSource)
        {
            _dataSources.Remove(dataSource.NameId);

            // ReSharper disable once InvertIf
            if (!_dataSources.Values.Any(x => x.QueueName.Equals(dataSource.QueueName)))
            {
                //No Values more on this Queue
                //=> Stop Listening on this queue
                _listeners[dataSource.NameId].Disconnect();
//                _amqpService.GetConnection(dataSource.QueueName).StopListening();
                _logger.LogInformation("Stop listening for ValueData on Queue \"{0}\"", dataSource.QueueName);
            }
        }
예제 #2
0
        public void AddDataSource(ValueDataSource dataSource)
        {
            if (!_dataSources.Values.Any(x => x.QueueName.Equals(dataSource.QueueName)))
            {
                //No Listeners on this queue so far, start Listening...
                _logger.LogInformation("Listening for ValueData on Queue \"{0}\"", dataSource.QueueName);

                var listener = _amqpService.GetAmqpListener(OnMessageReceived, dataSource.QueueName);
                _listeners.Add(dataSource.NameId, listener);
                //GetConnection(dataSource.QueueName);
//                con.MessageReceiver = OnMessageReceived;
//                con.StartListening();
            }

            _dataSources.Add(dataSource.NameId, dataSource);
        }