public void ExchangeDeclare(string exchange, string type, bool durable, bool autoDelete, IDictionary arguments) { var exchangeInstance = new Exchange { Name = exchange, Type = type, IsDurable = durable, AutoDelete = autoDelete, Arguments = arguments }; Func<string,Exchange,Exchange> updateFunction = (name, existing) => existing; _server.Exchanges.AddOrUpdate(exchange,exchangeInstance, updateFunction); }
public void BasicPublish(string exchange, string routingKey, bool mandatory, bool immediate, IBasicProperties basicProperties,byte[] body) { var parameters = new RabbitMessage { Exchange = exchange, RoutingKey = routingKey, Mandatory = mandatory, Immediate = immediate, BasicProperties = basicProperties, Body = body }; Func<string, Exchange> addExchange = s => { var newExchange = new Exchange { Name = exchange, Arguments = null, AutoDelete = false, IsDurable = false, Type = "direct" }; newExchange.PublishMessage(parameters); return newExchange; }; Func<string, Exchange, Exchange> updateExchange = (s, existingExchange) => { existingExchange.PublishMessage(parameters); return existingExchange; }; _server.Exchanges.AddOrUpdate(exchange, addExchange, updateExchange); NextPublishSeqNo++; }