BrokerTopology BuildTopology(ReceiveSettings settings) { var topologyBuilder = new ReceiveEndpointBrokerTopologyBuilder(); if (settings.QueueName.Equals(RabbitMqExchangeNames.ReplyTo, StringComparison.OrdinalIgnoreCase)) { return(topologyBuilder.BuildBrokerTopology()); } var queueArguments = new Dictionary <string, object>(settings.QueueArguments); var queueAutoDelete = settings.AutoDelete; if (settings.QueueExpiration.HasValue) { queueArguments["x-expires"] = (long)settings.QueueExpiration.Value.TotalMilliseconds; queueAutoDelete = false; } topologyBuilder.Exchange = topologyBuilder.ExchangeDeclare(settings.ExchangeName ?? settings.QueueName, settings.ExchangeType, settings.Durable, settings.AutoDelete, settings.ExchangeArguments); if (settings.BindQueue) { topologyBuilder.Queue = topologyBuilder.QueueDeclare(settings.QueueName, settings.Durable, queueAutoDelete, settings.Exclusive, queueArguments); topologyBuilder.QueueBind(topologyBuilder.Exchange, topologyBuilder.Queue, settings.RoutingKey, settings.BindingArguments); } _configuration.Topology.Consume.Apply(topologyBuilder); return(topologyBuilder.BuildBrokerTopology()); }
BrokerTopology BuildTopology(ReceiveSettings settings) { var topologyBuilder = new ReceiveEndpointBrokerTopologyBuilder(); topologyBuilder.Queue = topologyBuilder.CreateQueue(settings.GetQueueDescription()); _configuration.Topology.Consume.Apply(topologyBuilder); return(topologyBuilder.BuildBrokerTopology()); }