Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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++;
        }