Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        internal static bool VersionsByMediaType(this IApiVersionReader reader)
        {
            var context = new DescriptionContext();

            reader.AddParameters(context);
            return(context.HasMediaTypeApiVersion);
        }
Exemplo n.º 4
0
 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) =>
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
 public ApiVersionValidator(IApiVersionReader versionReader, IValidationStrategy validationStrategy)
 {
     _versionReader      = versionReader;
     _validationStrategy = validationStrategy;
 }