public async Task RouteAsync(RouteContext routeContext) { // This is needed due to a quirk of our tests - they reuse the endpoint feature. routeContext.HttpContext.SetEndpoint(null); await _selector.SelectAsync(routeContext.HttpContext, new CandidateSet(_candidates, _values, _scores)); if (routeContext.HttpContext.GetEndpoint() != null) { routeContext.Handler = (_) => Task.CompletedTask; } }
/// <inheritdoc/> public override Task SelectAsync(HttpContext httpContext, CandidateSet candidateSet) { if (httpContext == null) { throw new ArgumentNullException(nameof(httpContext)); } if (candidateSet == null) { throw new ArgumentNullException(nameof(candidateSet)); } Select(httpContext, candidateSet); if (httpContext.GetEndpoint() == null) { // If OData Endpoint selector cannot select an Endpoint, delegate it to the inner Endpoint selector. return(_innerSelector.SelectAsync(httpContext, candidateSet)); } return(Task.CompletedTask); }