public ExpectedResponse PrepareForResponse(string correlationId, BasicProperties basicProperties, AmqpModelContainer model, HttpRequestMessage request, TimeSpan requestTimeout, CancellationToken cancellationToken, TaskCompletionSource <HttpResponseMessage> taskSource) { //Set Reply to queue basicProperties.ReplyTo = RPCStrategyHelpers.DIRECT_REPLY_TO_QUEUENAME_ARG; var rpcModel = (RPCModelContainer)model; var arrival = new ExpectedResponse(rpcModel.ReceivedResponseEvent); rpcModel.ExpectResponse(correlationId, arrival); RPCStrategyHelpers.WaitForResponse(request, arrival, requestTimeout, model, true, cancellationToken, taskSource, () => CleanupMessagingResources(correlationId, arrival)); return(arrival); }
public ExpectedResponse PrepareForResponse(string correlationId, BasicProperties basicProperties, AmqpModelContainer model, HttpRequestMessage request, TimeSpan requestTimeout, CancellationToken cancellationToken, TaskCompletionSource <HttpResponseMessage> taskSource) { //Set Reply to queue basicProperties.ReplyTo = callbackQueueName; //Initialize response arrival object and add to expected responses dictionary var arrival = new ExpectedResponse(); expectedResponses[correlationId] = arrival; RPCStrategyHelpers.WaitForResponse(request, arrival, requestTimeout, model, false, cancellationToken, taskSource, () => CleanupMessagingResources(correlationId, arrival)); return(arrival); }