Exemple #1
0
        /// <summary>
        /// Deletes all queues and exchanges created or used by this Router.
        /// </summary>
        public void RemoveRouting(Func <string, bool> filter)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }

            lock (_lockObject)
            {
                MessagingBase.InternalResetCaches();
                _shortTermConnection.WithChannel(channel => {
                    foreach (var queue in queues.Where(filter))
                    {
                        channel.QueueDelete(queue);
                    }

                    foreach (var exchange in exchanges.Where(filter))
                    {
                        channel.ExchangeDelete(exchange);
                    }
                });

                queues.Clear();
                exchanges.Clear();
            }
        }