コード例 #1
0
        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);
        }