Exemple #1
0
        private IReadOnlyList <ApiDescription> GetApiDescriptions(
            ActionDescriptor action,
            List <MockFormatter> formatters)
        {
            var context = new ApiDescriptionProviderContext(new ActionDescriptor[] { action });

            var formattersProvider = new Mock <IOutputFormattersProvider>(MockBehavior.Strict);

            formattersProvider.Setup(fp => fp.OutputFormatters).Returns(formatters);

            var constraintResolver = new Mock <IInlineConstraintResolver>();

            constraintResolver.Setup(c => c.ResolveConstraint("int"))
            .Returns(new IntRouteConstraint());

            var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();

            var provider = new DefaultApiDescriptionProvider(
                formattersProvider.Object,
                constraintResolver.Object,
                modelMetadataProvider);

            provider.OnProvidersExecuting(context);
            provider.OnProvidersExecuted(context);

            return(new ReadOnlyCollection <ApiDescription>(context.Results));
        }
        private IReadOnlyList <ApiDescription> GetApiDescriptions(
            ActionDescriptor action,
            List <MockFormatter> formatters)
        {
            var context = new ApiDescriptionProviderContext(new ActionDescriptor[] { action });

            var formattersProvider = new Mock <IOutputFormattersProvider>(MockBehavior.Strict);

            formattersProvider.Setup(fp => fp.OutputFormatters).Returns(formatters);

            var constraintResolver = new Mock <IInlineConstraintResolver>();

            constraintResolver.Setup(c => c.ResolveConstraint("int"))
            .Returns(new IntRouteConstraint());

            var modelMetadataProvider = new Mock <IModelMetadataProvider>(MockBehavior.Strict);

            modelMetadataProvider
            .Setup(mmp => mmp.GetMetadataForType(null, It.IsAny <Type>()))
            .Returns((Func <object> accessor, Type type) =>
            {
                return(new ModelMetadata(modelMetadataProvider.Object, null, accessor, type, null));
            });

            var provider = new DefaultApiDescriptionProvider(
                formattersProvider.Object,
                constraintResolver.Object,
                modelMetadataProvider.Object);

            provider.Invoke(context, () => { });
            return(context.Results);
        }
        private IReadOnlyList <ApiDescription> GetApiDescriptions(
            ActionDescriptor action,
            List <MockFormatter> formatters)
        {
            var context = new ApiDescriptionProviderContext(new ActionDescriptor[] { action });

            var formattersProvider = new Mock <IOutputFormattersProvider>(MockBehavior.Strict);

            formattersProvider.Setup(fp => fp.OutputFormatters).Returns(formatters);

            var constraintResolver = new Mock <IInlineConstraintResolver>();

            constraintResolver.Setup(c => c.ResolveConstraint("int"))
            .Returns(new IntRouteConstraint());

            var modelMetadataProvider = new DataAnnotationsModelMetadataProvider();

            var provider = new DefaultApiDescriptionProvider(
                formattersProvider.Object,
                constraintResolver.Object,
                modelMetadataProvider);

            provider.Invoke(context, () => { });
            return(context.Results);
        }
Exemple #4
0
        private ApiDescriptionGroupCollection GetCollection(ActionDescriptorsCollection actionDescriptors)
        {
            var context = new ApiDescriptionProviderContext(actionDescriptors.Items);

            _apiDescriptionProvider.Invoke(context);

            var groups = context.Results
                         .GroupBy(d => d.GroupName)
                         .Select(g => new ApiDescriptionGroup(g.Key, g.ToArray()))
                         .ToArray();

            return(new ApiDescriptionGroupCollection(groups, actionDescriptors.Version));
        }
Exemple #5
0
 /// <inheritdoc />
 public void OnProvidersExecuting([NotNull] ApiDescriptionProviderContext context)
 {
     foreach (var action in context.Actions.OfType <ControllerActionDescriptor>())
     {
         var extensionData = action.GetProperty <ApiDescriptionActionData>();
         if (extensionData != null)
         {
             var httpMethods = GetHttpMethods(action);
             foreach (var httpMethod in httpMethods)
             {
                 context.Results.Add(CreateApiDescription(action, httpMethod, extensionData.GroupName));
             }
         }
     }
 }
Exemple #6
0
        private ApiDescriptionGroupCollection GetCollection(ActionDescriptorsCollection actionDescriptors)
        {
            var context = new ApiDescriptionProviderContext(actionDescriptors.Items);

            foreach (var provider in _apiDescriptionProviders)
            {
                provider.OnProvidersExecuting(context);
            }

            for (var i = _apiDescriptionProviders.Length - 1; i >= 0; i--)
            {
                _apiDescriptionProviders[i].OnProvidersExecuted(context);
            }

            var groups = context.Results
                         .GroupBy(d => d.GroupName)
                         .Select(g => new ApiDescriptionGroup(g.Key, g.ToArray()))
                         .ToArray();

            return(new ApiDescriptionGroupCollection(groups, actionDescriptors.Version));
        }
Exemple #7
0
 public void OnProvidersExecuted([NotNull] ApiDescriptionProviderContext context)
 {
 }