public IBinding Match()
                {
                    var bindingName = _configurer.Exchange.ExchangeName + "." + _configurer.Destination.Name;

                    return(Binding.Create(
                               bindingName,
                               _configurer.Destination.Name,
                               _configurer.Destination.Type,
                               _configurer.Exchange.ExchangeName,
                               string.Empty,
                               _headerMap));
                }
                public IBinding Exists()
                {
                    var bindingName = _configurer.Exchange.ExchangeName + "." + _configurer.Destination.Name;

                    return(Binding.Create(
                               bindingName,
                               _configurer.Destination.Name,
                               _configurer.Destination.Type,
                               _configurer.Exchange.ExchangeName,
                               string.Empty,
                               CreateMapForKeys(_key)));
                }
                public IBinding Matches(object value)
                {
                    var map = new Dictionary <string, object>();

                    map[_key] = value;
                    var bindingName = _configurer.Exchange.ExchangeName + "." + _configurer.Destination.Name;

                    return(Binding.Create(
                               bindingName,
                               _configurer.Destination.Name,
                               _configurer.Destination.Type,
                               _configurer.Exchange.ExchangeName,
                               string.Empty,
                               map));
                }
            public IBinding To(FanoutExchange exchange)
            {
                var bindingName = exchange.ExchangeName + "." + Name;

                return(Binding.Create(bindingName, Name, Type, exchange.ExchangeName, string.Empty, new Dictionary <string, object>()));
            }
            public IBinding WithQueueName()
            {
                var bindingName = ExchangeName + "." + Destination.Name;

                return(Binding.Create(bindingName, Destination.Name, Destination.Type, ExchangeName, Destination.Name, new Dictionary <string, object>()));
            }
            public IBinding With(Enum routingKeyEnum)
            {
                var bindingName = ExchangeName + "." + Destination.Name;

                return(Binding.Create(bindingName, Destination.Name, Destination.Type, ExchangeName, routingKeyEnum.ToString(), new Dictionary <string, object>()));
            }
            public IBinding NoArgs()
            {
                var bindingName = _configurer.ExchangeName + "." + _configurer.Destination.Name;

                return(Binding.Create(bindingName, _configurer.Destination.Name, _configurer.Destination.Type, _configurer.ExchangeName, _routingKey, new Dictionary <string, object>()));
            }