/// <summary>Gets the template information.</summary> /// <param name="context">The context.</param> /// <param name="resolver">The resolver.</param> /// <param name="routes">The routes.</param> /// <returns></returns> private static async Task <ApiRoutingTemplate> GetRoutingTemplate( this ApiRequestContext context, IUriRouteResolver resolver, IApiRoutingTable routes) { RouteMatch result; ApiRoutingTemplate template = null; foreach (var route in routes.GetRoutes()) { result = await resolver.ResolveRoute(route.Template, context.Request.Path).ConfigureAwait(false); if (result?.IsMatch ?? false) { if (template == null) { template = new ApiRoutingTemplate(route.Template); } template.Locations.Add(new ApiEndpointLocation( controller: route.Location.Controller, methodInfo: route.Location.MethodInfo, httpMethod: route.Location.HttpMethod, bodyParameterType: route.Location.BodyParameterType, uriParameterType: route.Location.UriParameterType, simpleParameters: route.Location.SimpleParameters, methodReturnType: route.Location.MethodReturnType)); } } return(template); }