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