/// <summary> /// Finds the endpoint and executes the request onto it. /// Handles errors and disposes of the endpoint when completed. /// </summary> public async Task InvokeAsync(IHttpRequestReader requestReader, IHttpRequestResponder responder, IRequestContext context) { var response = new Response(requestReader.ResourcePath); var builder = new ResponseBuilder(response, _services.Modifiers); var reader = new RequestReader(requestReader, _services.NameSwitcher, _services.QueryCreator); var writer = new ResponseWriter(responder, response, _services.NameSwitcher); try { var navigator = new EndpointNavigator(context, _startResourceFactory, _services); IRestEndpoint endpoint = navigator.GetEndpointFromPath(requestReader.ResourcePath); IExecutor executor = _services.ExecutorFactory.GetExecutor(endpoint); await executor.ExecuteAsync(reader, builder); await writer.WriteAsync(); } catch (Exception ex) { var errorInfo = new ExceptionErrorInfo(ex); builder.AddError(errorInfo); await writer.WriteAsync(); } finally { context.Dispose(); } }
public void Setup() { clientConsumer = A.Fake<IClientConsumer>(); tokenService = A.Fake<ITokenStorageService>(); httpRequestReader = A.Fake<IHttpRequestReader>(); client = new OAuthClient(clientConsumer, tokenService, httpRequestReader); }
public MyHandlerRouteProvider(IHttpRequestReader reader) { _reader = reader; _factory = ActivatorUtilities.CreateFactory(typeof(MyHandler), Type.EmptyTypes); }
public RequestReader(IHttpRequestReader httpReader, INamingConventionSwitcher nameSwitcher, IQueryCreator queryCreator) { _httpReader = httpReader; _nameSwitcher = nameSwitcher; _queryCreator = new NameSwitcherQueryCreator(queryCreator, nameSwitcher); }
public OAuthClient(IClientConsumer consumer, ITokenStorageService tokenService, IHttpRequestReader httpRequestReader) { this.consumer = consumer; this.tokenService = tokenService; this.httpRequestReader = httpRequestReader; }