Beispiel #1
0
        private void Publish(byte[] message, string correlationId)
        {
            var props = this.channel.CreateBasicProperties();

            props.CorrelationId = correlationId;
            props.ReplyTo       = responseQueueName;

            this.channel.BasicPublish(exchangeName, requestQueueName, props, message);

            using (var colour = new ScopedConsoleColour(ConsoleColor.Yellow))
            {
                Console.WriteLine($"Sent: {message} with CorrelationId {correlationId}");
            }
        }
Beispiel #2
0
        private void Consumer_Received(object sender, BasicDeliverEventArgs e)
        {
            var correlationId = e.BasicProperties.CorrelationId;
            var orderResponse = (OrderResponse)e.Body.ToArray().DeSerialize(typeof(OrderResponse));

            using (var colour = new ScopedConsoleColour(ConsoleColor.Yellow))
            {
                Console.WriteLine($"Received: {orderResponse.Message} with CorrelationId {correlationId}");
            }

            this.pendingMessages.TryRemove(correlationId, out var tcs);
            if (tcs != null)
            {
                tcs.SetResult(orderResponse);
            }
        }