static async Task Main(string[] args) { // create the bus var bus = new EasyQAmqp("localhost", "5672", "guest", "guest"); // respond to requests await bus.HandleRequest <FirstRequest, FirstResponse>(async request => { System.Console.WriteLine($"Request recieve = {request.MessageFirst} Time {DateTime.Now}"); await Task.Delay(2000); var requestMicr = new SecondRequest(); requestMicr.MessageSecondRequest = request.MessageFirst + "'Request from First Microservice'"; System.Console.WriteLine($"Recieving"); var responseTask = bus.SendRequest <SecondRequest, SecondResponse>(requestMicr); await responseTask.ContinueWith((resp) => { System.Console.WriteLine($"Response back = {resp.Result.MessageSecondResponse} Time = {DateTime.Now}"); }); request.MessageFirst += responseTask.Result.MessageSecondResponse; return(new FirstResponse { MessageFirstResponse = request.MessageFirst + " Response From Microservice First" }); }); Console.ReadLine(); //bus. Dispose(); }
public async Task HandleMessageB(SecondRequest message) { var outbound = new SecondRequestOutbound { SomeIdentifier = message.SomeIdentifier.ToString() }; _logger.Info($"Forwarding request (type: {outbound.GetType().Name})"); await _httpClient.PostAsJsonAsync("http://localhost:9022/api/messages/b", outbound); }