public void ExchangeUnbind(string destination, string source, string routingKey, IDictionary <string, object> arguments) { _server.Exchanges.TryGetValue(source, out var exchange); _server.Queues.TryGetValue(destination, out var queue); var binding = new ExchangeQueueBinding { Exchange = exchange, Queue = queue, RoutingKey = routingKey }; exchange?.Bindings.TryRemove(binding.Key, out _); queue?.Bindings.TryRemove(binding.Key, out _); }
public void ExchangeBind(string destination, string source, string routingKey, IDictionary <string, object> arguments) { Exchange exchange; _server.Exchanges.TryGetValue(source, out exchange); models.Queue queue; _server.Queues.TryGetValue(destination, out queue); var binding = new ExchangeQueueBinding { Exchange = exchange, Queue = queue, RoutingKey = routingKey }; if (exchange != null) { exchange.Bindings.AddOrUpdate(binding.Key, binding, (k, v) => binding); } if (queue != null) { queue.Bindings.AddOrUpdate(binding.Key, binding, (k, v) => binding); } }
public void ExchangeUnbind(string destination, string source, string routingKey, IDictionary <string, object> arguments) { Exchange exchange; _server.Exchanges.TryGetValue(source, out exchange); Queue queue; _server.Queues.TryGetValue(destination, out queue); var binding = new ExchangeQueueBinding { Exchange = exchange, Queue = queue, RoutingKey = routingKey }; ExchangeQueueBinding removedBinding; if (exchange != null) { exchange.Bindings.TryRemove(binding.Key, out removedBinding); } if (queue != null) { queue.Bindings.TryRemove(binding.Key, out removedBinding); } }