internal static string GetMediaTypeVersionParameter(this IApiVersionReader reader) { var context = new DescriptionContext(); reader.AddParameters(context); return(context.ParameterName); }
internal static bool VersionsByUrlSegment(this IApiVersionReader reader) { var context = new UrlSegmentDescriptionContext(); reader.AddParameters(context); return(context.HasPathApiVersion); }
internal static bool VersionsByMediaType(this IApiVersionReader reader) { var context = new DescriptionContext(); reader.AddParameters(context); return(context.HasMediaTypeApiVersion); }
public ApiVersionValidationFilter(StringValues validVersions, bool optional, string defaultVersion, IApiVersionReader apiVersionReader, IApiVersionValidator apiVersionValidator) { _validVersions = validVersions; _optional = optional; _defaultVersion = defaultVersion; _apiVersionReader = apiVersionReader; _apiVersionValidator = apiVersionValidator; }
public ApplyContentTypeVersionActionFilter(IApiVersionReader reader) =>
static HttpRequest RequestAfterApiVersionConstraintHasBeenMatched(string requestedVersion, IApiVersionReader apiVersionReader) { const string ParameterName = "version"; var request = new Mock <HttpRequest>(); var routeData = new RouteData() { Values = { [ParameterName] = requestedVersion } }; var featureCollection = new FeatureCollection(); var requestServices = new Mock <IServiceProvider>(); var httpContext = new Mock <HttpContext>(); requestServices.Setup(rs => rs.GetService(typeof(IApiVersionReader))).Returns(apiVersionReader); httpContext.SetupGet(c => c.Features).Returns(featureCollection); httpContext.SetupProperty(c => c.RequestServices, requestServices.Object); httpContext.SetupGet(c => c.Request).Returns(() => request.Object); request.SetupGet(r => r.HttpContext).Returns(httpContext.Object); featureCollection.Set <IApiVersioningFeature>(new ApiVersioningFeature(httpContext.Object)); featureCollection.Set <IRoutingFeature>(new RoutingFeature() { RouteData = routeData }); return(request.Object); }
static HttpRequest RequestAfterApiVersionConstraintHasBeenMatched(string requestedVersion, IApiVersionReader apiVersionReader) { const string ParmaterName = "version"; const string ItemKey = "MS_ApiVersionRequestProperties"; var request = new Mock <HttpRequest>(); var routeData = new RouteData() { Values = { [ParmaterName] = requestedVersion } }; var feature = new RoutingFeature() { RouteData = routeData }; var featureCollection = new Mock <IFeatureCollection>(); var requestServices = new Mock <IServiceProvider>(); var items = new Dictionary <object, object>(); var httpContext = new Mock <HttpContext>(); featureCollection.SetupGet(fc => fc[typeof(IRoutingFeature)]).Returns(feature); requestServices.Setup(rs => rs.GetService(typeof(IApiVersionReader))).Returns(apiVersionReader); httpContext.SetupGet(c => c.Features).Returns(featureCollection.Object); httpContext.SetupProperty(c => c.Items, items); httpContext.SetupProperty(c => c.RequestServices, requestServices.Object); httpContext.SetupGet(c => c.Request).Returns(() => request.Object); var properties = new ApiVersionRequestProperties(httpContext.Object); items[ItemKey] = properties; request.SetupGet(r => r.HttpContext).Returns(httpContext.Object); return(request.Object); }
public ApiVersionValidator(IApiVersionReader versionReader, IValidationStrategy validationStrategy) { _versionReader = versionReader; _validationStrategy = validationStrategy; }