/// <summary> /// Adds the specified queue name. /// </summary> /// <param name="queueName">Name of the queue.</param> /// <param name="config">The configuration.</param> public void Add(string queueName, CreateQueueConfig config) { var queue = new QueueInfo { Name = queueName, Config = config }; Add(queue); }
/// <summary> /// Creates the queue. /// </summary> /// <param name="queueName">Name of the queue.</param> /// <param name="config">The configuration.</param> /// <returns></returns> public virtual IFluentRabbit CreateQueue(string queueName, CreateQueueConfig config) { return(TryCatch_Trace(MethodBase.GetCurrentMethod(), () => { //validation config.ThrowExceptionIfNull <ArgumentNullException>(nameof(config)); RabbitMqClient.Model.ThrowExceptionIfNull <ModelIsNullException>(); //execution RabbitMqClient.Model.QueueDeclare(queueName, config.Durable, config.Exclusive, config.AutoDelete, config.Arguments); })); }
public void ExecuteConfigure() { var queueConfig = new CreateQueueConfig(); var exchangeConfig = new CreateExchangeConfig(); var exchange1 = $"Exchange_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}"; var exchange2 = $"Exchange_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}"; var queue1 = $"Queue_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}"; var queue2 = $"Queue_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}"; var routingKey1 = $"RoutingKey_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}"; var routingKey2 = $"RoutingKey_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}"; _rabbit.Configure( p => { p.Exchanges.Add(exchange1, exchangeConfig); p.Exchanges.Add(exchange2, exchangeConfig); p.Queues.Add(q => { q.Name = queue1; q.Config = queueConfig; } ); p.Queues.Add(queue2, queueConfig); p.Bindings.Add( r => { r.Config.ExchangeName = exchange1; r.Config.QueueName = queue1; r.Config.RoutingKey = routingKey1; }); p.Bindings.Add( r => { r.Config.ExchangeName = exchange2; r.Config.QueueName = queue2; r.Config.RoutingKey = routingKey2; }); } ) .Connect() .ConfigureUp() .ConfigureDown() ; _rabbit.Configuration.Exchanges.Should().ContainSingle(p => p.Name == exchange1); }