UnsubscribeAction IResponseHandler.Connect(IInboundPipelineConfigurator configurator) { var connector = new RequestHandlerSubscriptionConnector <TResponse>(); HandlerSelector <TResponse> handler = HandlerSelector.ForContextHandler <TResponse>(HandleResponse); return(connector.Connect(configurator, _requestId, handler)); }
public void Handle <TResponse>(Action <TResponse> handler) where TResponse : class { var connector = new RequestHandlerSubscriptionConnector <TResponse>(); Action <TResponse> responseHandler = message => { try { handler(message); _request.Complete(message); } catch (Exception ex) { var exception = new RequestException("The response handler threw an exception", ex, message); _request.Fail(exception); } }; _handlers.Add( x => { return(connector.Connect(x, _requestId, HandlerSelector.ForHandler(responseHandler))); }); }