/// <summary> /// Creates a new instance of <see cref="ApiDescriptionGroupCollectionProvider"/>. /// </summary> /// <param name="actionDescriptorCollectionProvider"> /// The <see cref="IActionDescriptorCollectionProvider"/>. /// </param> /// <param name="apiDescriptionProviders"> /// The <see cref="IEnumerable{IApiDescriptionProvider}"/>. /// </param> public ApiDescriptionGroupCollectionProvider( IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, IEnumerable<IApiDescriptionProvider> apiDescriptionProviders) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; _apiDescriptionProviders = apiDescriptionProviders.OrderBy(item => item.Order).ToArray(); }
private void PrepareCache(IActionDescriptorCollectionProvider provider) { var controllerActionDescriptors = provider .ActionDescriptors .Items .OfType<ControllerActionDescriptor>(); foreach (var descriptor in controllerActionDescriptors) { Cache.TryAdd(descriptor.MethodInfo, descriptor); } }
public ODataActionSelector(IODataRoutingConvention convention, IActionDescriptorCollectionProvider actionDescriptorsCollectionProvider, IActionSelectorDecisionTreeProvider decisionTreeProvider, IEnumerable<IActionConstraintProvider> actionConstraintProviders, ILoggerFactory loggerFactory) { _selector = new ActionSelector(decisionTreeProvider, new ActionConstraintCache(actionDescriptorsCollectionProvider, actionConstraintProviders), loggerFactory); _convention = convention; }
public AttributeRoute( IRouter target, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, IInlineConstraintResolver constraintResolver, ObjectPool<UriBuildingContext> contextPool, UrlEncoder urlEncoder, ILoggerFactory loggerFactory) { if (target == null) { throw new ArgumentNullException(nameof(target)); } if (actionDescriptorCollectionProvider == null) { throw new ArgumentNullException(nameof(actionDescriptorCollectionProvider)); } if (constraintResolver == null) { throw new ArgumentNullException(nameof(constraintResolver)); } if (contextPool == null) { throw new ArgumentNullException(nameof(contextPool)); } if (urlEncoder == null) { throw new ArgumentNullException(nameof(urlEncoder)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _target = target; _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; _constraintResolver = constraintResolver; _contextPool = contextPool; _urlEncoder = urlEncoder; _loggerFactory = loggerFactory; }
private static AttributeRoute CreateRoute( IRouter handler, IActionDescriptorCollectionProvider actionDescriptorProvider) { var constraintResolver = new Mock<IInlineConstraintResolver>(); constraintResolver .Setup(c => c.ResolveConstraint("int")) .Returns(new IntRouteConstraint()); var policy = new UriBuilderContextPooledObjectPolicy(new UrlTestEncoder()); var pool = new DefaultObjectPool<UriBuildingContext>(policy); var route = new AttributeRoute( handler, actionDescriptorProvider, constraintResolver.Object, pool, new UrlTestEncoder(), NullLoggerFactory.Instance); return route; }
public HateoasGenresControllerBase(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _routes = actionDescriptorCollectionProvider.ActionDescriptors.Items; }
public RouteAnalyzer(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
/// <summary> /// Initializes a new instance of the <see cref="VersionedODataModelBuilder"/> class. /// </summary> /// <param name="actionDescriptorCollectionProvider">The <see cref="IActionDescriptorCollectionProvider "/> used to discover OData routes.</param> /// <param name="options">The <see cref="ApiVersioningOptions">options</see> associated with the action selector.</param> public VersionedODataModelBuilder(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, IOptions <ApiVersioningOptions> options) : this(actionDescriptorCollectionProvider, options, Empty <IModelConfiguration>()) { }
public MvcControllerDiscovery(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public ArticlePageModel(IEpiServerInitialize epi, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) : base(epi, actionDescriptorCollectionProvider) { }
public RoutesController(IActionDescriptorCollectionProvider provider) { _provider = provider; }
public RoutesController(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { this._actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
protected private abstract ActionEndpointDataSourceBase CreateDataSource(IActionDescriptorCollectionProvider actions, ActionEndpointFactory endpointFactory);
public RecogController(IActionDescriptorCollectionProvider provider, ILoggerFactory logger) { _provider = provider; _logger = logger.CreateLogger("OrderController"); }
private static Resource CreateResource(Type type, object value, HateoasOptions options, IActionDescriptorCollectionProvider actionDescriptorProvider, IUrlHelper urlHelper) { var resourceOptions = options.Requirements.Where(r => r.ResourceType == type); var isEnumerable = type.GetInterfaces().Contains(typeof(IEnumerable)); var resource = default(Resource); if (isEnumerable) { resource = new ListItemResource(value); } else { resource = new ObjectResource(value); } foreach (var option in resourceOptions) { var route = actionDescriptorProvider.ActionDescriptors.Items.FirstOrDefault(i => i.AttributeRouteInfo.Name == option.Name); var method = route.ActionConstraints.OfType <HttpMethodActionConstraint>().First().HttpMethods.First(); var routeValues = default(object); if (!isEnumerable) { routeValues = option.RouteValues(value); } var url = urlHelper.Link(option.Name, routeValues).ToLower(); resource.Links.Add(new Link(option.Name, url, method)); } return(resource); }
public ControllerService(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
internal static Lazy <IReadOnlyList <ApiVersionDescription> > Create(DefaultApiVersionDescriptionProvider apiVersionDescriptionProvider, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { Contract.Requires(apiVersionDescriptionProvider != null); Contract.Requires(actionDescriptorCollectionProvider != null); Contract.Ensures(Contract.Result <Lazy <IReadOnlyList <ApiVersionDescription> > >() != null); var descriptions = new LazyApiVersionDescriptions(apiVersionDescriptionProvider, actionDescriptorCollectionProvider); return(new Lazy <IReadOnlyList <ApiVersionDescription> >(descriptions.EnumerateApiVersions)); }
LazyApiVersionDescriptions(DefaultApiVersionDescriptionProvider apiVersionDescriptionProvider, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { Contract.Requires(apiVersionDescriptionProvider != null); Contract.Requires(actionDescriptorCollectionProvider != null); this.apiVersionDescriptionProvider = apiVersionDescriptionProvider; this.actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public MetadataService(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, IServiceCollection serviceCollection) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; _serviceCollection = serviceCollection; }
private async Task <IEnumerable <AreaInfo> > GetAreaInfosAsync(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, PageLoader pageLoader, LinkGenerator linkGenerator) { //根,从area开始 var result = new List <AreaInfo>(); //遍历区域 foreach (var area in actionDescriptorCollectionProvider.ActionDescriptors.Items.GroupBy(item => item.RouteValues["area"])) { var areaInfo = new AreaInfo { Name = area.Key }; result.Add(areaInfo); //遍历控制器 foreach (var controllerActions in area.OfType <ControllerActionDescriptor>().GroupBy(c => c.ControllerTypeInfo)) { //跳过重复控制器,不知道为什么,里面有些重复项目 if (areaInfo.Controllers.Any(c => c.TypeFullName == controllerActions.Key.FullName)) { continue; } var conInfo = new AreaInfo.ControllerInfo { Name = controllerActions.First().ControllerName, TypeFullName = controllerActions.Key.FullName, Description = (controllerActions.Key.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute) ?.Description, Area = controllerActions.First().RouteValues["area"], }; areaInfo.Controllers.Add(conInfo); //遍历动作 foreach (var action in controllerActions) { var act = new AreaInfo.ControllerInfo.ActionInfo { Name = action.MethodInfo.Name, ActionName = action.ActionName, HandlerIdentification = (action.MethodInfo.GetCustomAttribute(typeof(RequestHandlerIdentificationAttribute)) as RequestHandlerIdentificationAttribute) ?.UniqueKey, Signature = action.MethodInfo.ToString(), Description = (action.MethodInfo.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute) ?.Description, Url = linkGenerator.GetPathByAction(action.ActionName, conInfo.Name, new { area = conInfo.Area }), HttpMethodLimits = action.ActionConstraints?.OfType <HttpMethodActionConstraint>().FirstOrDefault()?.HttpMethods.ToList(), MethodInfo = action.MethodInfo, ActionDescriptor = action }; conInfo.Actions.Add(act); } } //遍历Razor Page foreach (var pageActionDescriptor in area.OfType <PageActionDescriptor>()) { //载入Razor Page,会从程序集加载或编译page文件并缓存 var page = await pageLoader.LoadAsync(pageActionDescriptor); //也是剔除重复 if (areaInfo.Pages.Any(p => p.TypeFullName == page.HandlerTypeInfo.FullName)) { continue; } var pageInfo = new AreaInfo.PageInfo { Name = page.DisplayName, Area = page.AreaName, TypeFullName = page.HandlerTypeInfo.FullName, Description = (page.HandlerTypeInfo.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute) ?.Description }; foreach (var handlerMethod in page.HandlerMethods) { pageInfo.PageHandlers.Add(new AreaInfo.PageInfo.PageHandlerInfo { HttpMethod = handlerMethod.HttpMethod, Name = handlerMethod.Name, HandlerIdentification = (handlerMethod.MethodInfo.GetCustomAttribute(typeof(RequestHandlerIdentificationAttribute)) as RequestHandlerIdentificationAttribute) ?.UniqueKey, Signature = handlerMethod.MethodInfo.ToString(), Description = (handlerMethod.MethodInfo.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute) ?.Description, Url = linkGenerator.GetPathByPage(page.DisplayName, handlerMethod.Name, new { area = page.AreaName }), MethodInfo = handlerMethod.MethodInfo, ActionDescriptor = page }); } areaInfo.Pages.Add(pageInfo); } } return(result); }
/// <summary> /// Returns all endpoint specification for current microservice /// </summary> /// <param name="actionDescriptorCollectionProvider"></param> public MicroserviceController(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public DiseaseController(ApplicationDbContext context, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _databaseContext = context; _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public RoutesController(IRouteRepository routeRepository, IMapper mapper, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) : base(actionDescriptorCollectionProvider) { _routeRepository = routeRepository; _mapper = mapper; }
public RoutesDebugController(IActionDescriptorCollectionProvider provider) => _provider = provider;
public UsersController(AlpsContext context, IActionDescriptorCollectionProvider actionProvider) { _context = context; _actionProvider = actionProvider; }
protected ActionEndpointDataSourceBase(IActionDescriptorCollectionProvider provider) { Conventions = new List <Action <EndpointBuilder> >(); _endpointsAccessor = new Lazy <IReadOnlyList <Endpoint> >(() => CreateEndpoints(provider.ActionDescriptors, Conventions)); }
public HomeController(IDatabase database, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _database = database; _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
/// <summary> /// Constructor with IActionDescriptorCollectionProvider DI /// </summary> /// <param name="actionDescriptorCollectionProvider"></param> public HateoasFilter(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public DiscoverController(IActionDescriptorCollectionProvider actionDescriptor) { this.actionDescriptor = actionDescriptor; }
/// <summary> /// Initializes a new instance of the <see cref="AttributeRoutingConvention"/> class. /// </summary> /// <param name="pathTemplateHandler"></param> /// <param name="actionCollectionProvider"></param> public AttributeRoutingConvention(IODataPathTemplateHandler pathTemplateHandler, IActionDescriptorCollectionProvider actionCollectionProvider) { if (pathTemplateHandler == null) { throw Error.ArgumentNull("pathTemplateHandler"); } if (actionCollectionProvider == null) { throw Error.ArgumentNull("actionCollectionProvider"); } ODataPathTemplateHandler = pathTemplateHandler; ActionDescriptorCollectionProvider = actionCollectionProvider; }
public EpiPageModel(IEpiServerInitialize epi, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { contentLoader = epi.GetInstance <IContentLoader>(); _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; //CurrentPage = pages.FirstOrDefault(x => x.URLSegment == ) }
/// <summary> /// Initializes a new instance of the <see cref="ControllerActionDescriptorCache"/> class. /// </summary> /// <param name="provider">Action descriptors collection provider.</param> public ControllerActionDescriptorCache(IActionDescriptorCollectionProvider provider) { this.PrepareCache(provider); }
public RoutesModel(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { this._actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public DataBaseController(ITJobsAppContext context, IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _databaseContext = context; _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public ActionEndpointDataSourceBase(IActionDescriptorCollectionProvider actions) { _actions = actions; Conventions = new List <Action <EndpointBuilder> >(); }
/// <summary> /// Creates a new <see cref="ActionSelectorDecisionTreeProvider"/>. /// </summary> /// <param name="actionDescriptorCollectionProvider"> /// The <see cref="IActionDescriptorCollectionProvider"/>. /// </param> public ActionSelectorDecisionTreeProvider( IActionDescriptorCollectionProvider actionDescriptorCollectionProvider) { _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
public DefaultPageLoaderTest() { var actionDescriptors = new ActionDescriptorCollection(Array.Empty <ActionDescriptor>(), 1); ActionDescriptorCollectionProvider = Mock.Of <IActionDescriptorCollectionProvider>(v => v.ActionDescriptors == actionDescriptors); }