/// <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)); } } } }
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); }
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)); }
private IReadOnlyList<ApiDescription> GetApiDescriptions( ActionDescriptor action, List<MockFormatter> formatters) { var context = new ApiDescriptionProviderContext(new ActionDescriptor[] { action }); var options = new MvcOptions(); foreach (var formatter in formatters) { options.OutputFormatters.Add(formatter); } var optionsAccessor = new Mock<IOptions<MvcOptions>>(); optionsAccessor.SetupGet(o => o.Value) .Returns(options); var constraintResolver = new Mock<IInlineConstraintResolver>(); constraintResolver.Setup(c => c.ResolveConstraint("int")) .Returns(new IntRouteConstraint()); var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(); var provider = new DefaultApiDescriptionProvider( optionsAccessor.Object, constraintResolver.Object, modelMetadataProvider); provider.OnProvidersExecuting(context); provider.OnProvidersExecuted(context); return new ReadOnlyCollection<ApiDescription>(context.Results); }
public void OnProvidersExecuted([NotNull] ApiDescriptionProviderContext context) { }
private IReadOnlyList<ApiDescription> GetApiDescriptions() { var context = new ApiDescriptionProviderContext(_actionDescriptors); var options = new MvcOptions(); options.OutputFormatters.Add(new JsonOutputFormatter()); var optionsAccessor = new Mock<IOptions<MvcOptions>>(); optionsAccessor.Setup(o => o.Value).Returns(options); var constraintResolver = new Mock<IInlineConstraintResolver>(); constraintResolver.Setup(i => i.ResolveConstraint("int")).Returns(new IntRouteConstraint()); var provider = new DefaultApiDescriptionProvider( optionsAccessor.Object, constraintResolver.Object, CreateModelMetadataProvider() ); provider.OnProvidersExecuting(context); provider.OnProvidersExecuted(context); return new ReadOnlyCollection<ApiDescription>(context.Results); }