Esempio n. 1
0
        public Task HandleReceive(RabbitContext rabbitContext, RabbitMessageHandler next)
        {
            var service = rabbitContext.ContextServiceProvider.GetRequiredService(subscriptionType);
            var @event  = rabbitContext.ReceivedMessage.ToEventMessage().MessageReader.Read <T>();

            return(((IEventHandler <T>)service).Handle(@event));
        }
        public void AllMessagesWithAnotherRoutingKeyAreNotReaded()
        {
            var messageHandler = new RabbitMessageHandler();

            PublishMessages(new Payload()
            {
                Body = "hr message"
            }, directExchange, hrRoutingKey, "direct");
            _sut.Get(directExchange, "message-marketing-queue", messageHandler, marketingRoutingKey, "direct");
            Assert.AreEqual(messageHandler.Payloads.Count, 0);
        }
        public void AllMessagesWithARoutingKeyAreReaded()
        {
            var messageHandler = new RabbitMessageHandler();

            PublishMessages(new Payload()
            {
                Body = "hr message"
            }, directExchange, hrRoutingKey, "direct");
            _sut.Get(directExchange, "message-hr-queue", messageHandler, hrRoutingKey, "direct");
            Assert.IsTrue(messageHandler.Payloads.Count > 0);
            Assert.AreEqual(messageHandler.Payloads.ElementAt(0).Body, "hr message");
        }
        public void AllMessagesInTheQueueAreReaded()
        {
            var messageHandler = new RabbitMessageHandler();

            PublishMessages(new Payload()
            {
                Body = "test message"
            }, sharedExchange);
            _sut.Get(sharedExchange, "message-shared-queue", messageHandler);
            Assert.IsTrue(messageHandler.Payloads.Count > 0);
            Assert.AreEqual(messageHandler.Payloads.ElementAt(0).Body, "test message");
        }
        public void AllMessagesInTheQueueAreConsumed()
        {
            var messageHandler = new RabbitMessageHandler();
            var publisherTask  = Task.Run(() => PublishMessages(new Payload()
            {
                Body = "test message"
            }, sharedExchange));
            var subscriberTask = Task.Run(() => _sut.Subscribe(sharedExchange, "consumer-queue", messageHandler));

            Task.WaitAll(publisherTask, subscriberTask, CancelSubscriberTask());
            _sut.Unsubscribe(subscriberTask.Result);

            Assert.IsTrue(messageHandler.Payloads.Count > 0);
        }
        public void AllMessagesWithARoutingKeyAreConsumed()
        {
            var messageHandler = new RabbitMessageHandler();
            var publisherTask  = Task.Run(() => PublishMessages(new Payload()
            {
                Body = "hr message"
            }, directExchange, hrRoutingKey, "direct"));
            var subscriberTask = Task.Run(() => _sut.Subscribe(directExchange, "consumer-hr-queue", messageHandler, hrRoutingKey, "direct"));

            Task.WaitAll(publisherTask, subscriberTask, CancelSubscriberTask());
            _sut.Unsubscribe(subscriberTask.Result);

            Assert.IsTrue(messageHandler.Payloads.Count > 0);
        }
 public Task HandleReceive(RabbitContext rabbitContext, RabbitMessageHandler next)
 {
     try
     {
         //rabbitContext.Serializer(null);
         //rabbitContext.ReceivedMessage.Body
         //rabbitContext.ReceivedMessage.Body = new []
         return(next());
     }
     catch (Exception)
     {
         var properties = rabbitContext.BasicPropertyCreator();
         rabbitContext.WriteMessageToPublish(rabbitContext.ReceivedMessage.Body, properties);
         return(Task.CompletedTask);
     }
 }
Esempio n. 8
0
        public Task Execute(RabbitContext rabbitContext, EventMessage eventMessage)
        {
            RabbitMessageHandler next = null;
            int counter        = 0;
            var currentMethods = methods;

            next = () =>
            {
                if (counter < currentMethods.Length)
                {
                    return(currentMethods[counter++].Invoke(rabbitContext, next));
                }
                return(Task.CompletedTask);
            };
            return(next());
        }
Esempio n. 9
0
        public static void Main(string[] args)
        {
            Configuration = new ConfigurationBuilder()
                            .AddJsonFile("appsettings.RabbitMq.json", optional: false, reloadOnChange: true)
                            .AddCommandLine(args)
                            .Build();

            var rabbitOptions = new RabbitOptions();

            Configuration.GetSection("RabbitMqConnection").Bind(rabbitOptions);
            var subscriber = new DefaultSubscriberService(rabbitOptions);

            var messageHandler         = new RabbitMessageHandler();
            var messagingConfiguration = new MessagingConfiguration(exchangeName: "WeatherForecastExchange", queueName: "WeatherForecast-Queue");

            subscriber.Consume(messagingConfiguration, messageHandler);

            Console.WriteLine(" Press [enter] to exit.");
            Console.ReadLine();
        }
 public Task HandlePublish(RabbitContext rabbitContext, RabbitMessageHandler next)
 {
     return(next());
 }