public IQueue DeclareDynamicQueue(IExchange exchange)
        {
            var channel = this.UsingConnection.CreateModel();
            var queue   = new SimpleQueue()
            {
                Name       = Guid.NewGuid().ToString(),
                BindingKey = Guid.NewGuid().ToString(),
                IsDurable  = false
            }.Declare(channel);

            if (exchange != null)
            {
                return(queue.BindExchange(channel, exchange.Name));
            }

            return(queue);
        }