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); } }
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()); }
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()); }