private IRabbitBusBuilder UseConnectionConfig(RabbitMqConfiguration rabbitMqConfiguration) { _configuration = rabbitMqConfiguration.Connection; if (!string.IsNullOrEmpty(rabbitMqConfiguration.Host)) { _configuration.Hosts.Add(new HostConfiguration() { Host = rabbitMqConfiguration.Host, Port = rabbitMqConfiguration.Port }); } return(this); }
public IRabbitBusBuilder UseRabbitMqConfiguration(RabbitMqConfiguration rabbitMqConfiguration) { UseConnectionConfig(rabbitMqConfiguration); if (rabbitMqConfiguration?.Exchanges != null) { foreach (var exchangeConfig in rabbitMqConfiguration.Exchanges) { UseExchange(exchangeConfig.Name, x => { x.AsAutoDelete(exchangeConfig.AutoDelete); x.AsDurable(exchangeConfig.Durable); x.WithType(exchangeConfig.Type); if (exchangeConfig.Args != null && exchangeConfig.Args.Count > 0) { foreach (var arg in exchangeConfig.Args) { x.WithArgument(arg.Key, arg.Value); } } }); } } if (rabbitMqConfiguration.Connection != null) { foreach (var queueConfig in rabbitMqConfiguration.Queues) { UseQueue(queueConfig.Name, x => { x.AsAutoDelete(queueConfig.AutoDelete); x.AsDurable(queueConfig.Durable); x.AsExclusive(queueConfig.Exclusive); if (queueConfig.Args != null && queueConfig.Args.Count > 0) { foreach (var arg in queueConfig.Args) { x.WithArgument(arg.Key, arg.Value); } } if (queueConfig.PerQueueMessageTtl.HasValue) { x.WithMessageTtl(TimeSpan.FromMilliseconds(queueConfig.PerQueueMessageTtl.Value)); } //if (!string.IsNullOrEmpty(queueConfig.DeadLetterExchange)) //{ // x.WithDeadLetterExchange(queueConfig.DeadLetterExchange); //} }); } } if (rabbitMqConfiguration.Binding != null) { foreach (var bindingConfig in rabbitMqConfiguration.Binding) { _bindingConfigurations.Add(new BindingConfiguration() { ExchangeName = bindingConfig.ExchangeName, QueueName = bindingConfig.QueueName, RoutingKey = bindingConfig.RoutingKey, Args = bindingConfig.Args, }); } } return(this); }