Пример #1
0
 /// <summary>
 ///   Declare exchange to exchange binding
 /// </summary>
 public static IRabbitMQExchangeBuilder <TPayload> BoundTo <TPayload>(
     this IRabbitMQExchangeBuilder <TPayload> builder,
     IRabbitMQExchangeBuilder exchange,
     Action <IRabbitMQExchangeBindingBuilder> binding = null)
 {
     return(builder.BoundTo <IRabbitMQExchangeBuilder <TPayload> >(exchange, binding));
 }
Пример #2
0
 /// <summary>
 ///   Declare exchange to exchange binding
 /// </summary>
 public static IRabbitMQExchangeBuilder BoundTo(
     this IRabbitMQExchangeBuilder builder,
     IRabbitMQExchangeBuilderCore exchange,
     Action <IRabbitMQExchangeBindingBuilder> binding = null)
 {
     return(builder.BoundTo <IRabbitMQExchangeBuilder>(exchange, binding));
 }
 /// <summary>
 ///   Declare x-dead-letter-exchange argument. When message is dead, send to x-dead-letter-exchange.
 ///   Declare x-dead-letter-routing-key argument. When message is dead, send to x-dead-letter-exchange with routing key.
 /// </summary>
 public static IRabbitMQQueueBuilder <TPayload> DeadLetterTo <TPayload>(
     this IRabbitMQQueueBuilder <TPayload> builder,
     IRabbitMQExchangeBuilder exchange,
     string routingKey = null)
 {
     return(builder.DeadLetterTo((IRabbitMQExchangeBuilderCore)exchange, routingKey));
 }
        /// <summary>
        ///   Declare x-dead-letter-exchange argument. When message is dead, send to x-dead-letter-exchange.
        ///   Declare x-dead-letter-routing-key argument. When message is dead, send to x-dead-letter-exchange with routing key.
        /// </summary>
        public static IRabbitMQQueueBuilder <TPayload> DeadLetterTo <TPayload>(
            this IRabbitMQQueueBuilder <TPayload> builder,
            IRabbitMQExchangeBuilder exchange,
            IRabbitMQQueueBuilder <TPayload> queue)
        {
            var binding = queue.Declaration
                          .BindingDeclarations
                          .FirstOrDefault(b => b.ExchangeDeclaration == exchange.ExchangeDeclaration);

            return(builder.DeadLetterTo(exchange, binding?.RoutingKey ?? queue.Declaration.Name));
        }
Пример #5
0
 /// <summary>
 ///   Declare alternate-exchange argument. When message can't be routed in current exchange,
 ///   instead of mark as dead, publish to specified exchange
 /// </summary>
 public static IRabbitMQExchangeBuilder <TPayload> AlternateTo <TPayload>(
     this IRabbitMQExchangeBuilder <TPayload> builder,
     IRabbitMQExchangeBuilder exchange)
 {
     return(builder.AlternateTo <IRabbitMQExchangeBuilder <TPayload> >(exchange));
 }
Пример #6
0
 /// <summary>
 ///   Declare alternate-exchange argument. When message can't be routed in current exchange,
 ///   instead of mark as dead, publish to specified exchange
 /// </summary>
 public static IRabbitMQExchangeBuilder AlternateTo(
     this IRabbitMQExchangeBuilder builder,
     IRabbitMQExchangeBuilderCore exchange)
 {
     return(builder.AlternateTo <IRabbitMQExchangeBuilder>(exchange));
 }
Пример #7
0
 public static IRabbitMQProducerBuilder <TPayload> AddProducer <TPayload>(
     this IRabbitMQConnectionBuilder connection,
     IRabbitMQExchangeBuilder <TPayload> exchange)
 {
     return(connection.AddProducer <TPayload>((IRabbitMQExchangeBuilderCore)exchange));
 }