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); } }
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); }