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); }
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)); }
/// <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)); }
public void OnProvidersExecuted([NotNull] ApiDescriptionProviderContext context) { }