/// <summary> /// Constructor /// </summary> /// <param name="controllers">All controller contexts</param> /// <param name="optionsAccessor">Options accessor</param> /// <param name="serializer">JSON serializer</param> public DiscoveryHandler( ControllerContext[] controllers, ILiteApiOptionsAccessor optionsAccessor, IJsonSerializer serializer, IModelBinder modelBinders) { if (optionsAccessor == null) { throw new ArgumentNullException(nameof(optionsAccessor)); } _options = optionsAccessor.GetOptions(); _controllers = controllers ?? throw new ArgumentNullException(nameof(controllers)); _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); _modelBinders = modelBinders ?? throw new ArgumentNullException(nameof(modelBinders)); }
/// <summary> /// Initializes a new instance of the <see cref="PathResolver"/> class. /// </summary> /// <param name="controllers">Controllers to check.</param> /// <exception cref="System.ArgumentNullException"></exception> public PathResolver(ControllerContext[] controllers, ILiteApiOptionsAccessor optionsRetriever) { if (controllers == null) { throw new ArgumentNullException(nameof(controllers)); } if (optionsRetriever == null) { throw new ArgumentNullException(nameof(optionsRetriever)); } _controllerContrxts = controllers; foreach (var ctrl in _controllerContrxts) { ctrl.Init(optionsRetriever); } }
/// <summary> /// Initializes filters and possibly other stuff /// </summary> internal void Init(ILiteApiOptionsAccessor optionsRetriever) { if (optionsRetriever == null) { throw new ArgumentNullException(nameof(optionsRetriever)); } if (Filters == null) { var attribs = Method.GetCustomAttributes().ToArray(); var apiFilters = attribs .Where(x => typeof(IApiFilter).IsAssignableFrom(x.GetType())) .Cast <IApiFilter>() .ToArray(); var asyncFilters = attribs .Where(x => typeof(IApiFilterAsync).IsAssignableFrom(x.GetType())) .Cast <IApiFilterAsync>() .ToArray(); var policyFilters = attribs .Where(x => typeof(IPolicyApiFilter).IsAssignableFrom(x.GetType())) .Cast <IPolicyApiFilter>() .ToArray(); Filters = apiFilters.Select(x => new ApiFilterWrapper(x)) .Union(asyncFilters.Select(x => new ApiFilterWrapper(x))) .Union(policyFilters.Select(x => new ApiFilterWrapper(x, () => optionsRetriever.GetOptions().AuthorizationPolicyStore))) .ToArray(); SkipAuth = Method .GetCustomAttributes() .Where(x => typeof(SkipFiltersAttribute) == x.GetType()) .Count() > 0; DateTimeParsingFormat = ( attribs .FirstOrDefault(x => x is DateTimeParsingFormatAttribute) as DateTimeParsingFormatAttribute )?.ParsingFormat; } }
/// <summary> /// Initializes the specified options retriver. /// </summary> /// <param name="optionsRetriver">The options retriever.</param> /// <exception cref="ArgumentNullException">optionsRetriver</exception> internal void Init(ILiteApiOptionsAccessor optionsRetriver) { if (optionsRetriver == null) { throw new ArgumentNullException(nameof(optionsRetriver)); } if (Filters == null) { var attributes = ControllerType.GetTypeInfo().GetCustomAttributes().ToArray(); var apiFilters = attributes .Where(x => typeof(IApiFilter).IsAssignableFrom(x.GetType())) .Cast <IApiFilter>() .ToArray(); var asyncFilters = attributes .Where(x => typeof(IApiFilterAsync).IsAssignableFrom(x.GetType())) .Cast <IApiFilterAsync>() .ToArray(); var policyFilters = attributes .Where(x => typeof(IPolicyApiFilter).IsAssignableFrom(x.GetType())) .Cast <IPolicyApiFilter>() .ToArray(); Filters = apiFilters.Select(x => new ApiFilterWrapper(x)) .Union(asyncFilters.Select(x => new ApiFilterWrapper(x))) .Union(policyFilters.Select(x => new ApiFilterWrapper(x, () => optionsRetriver.GetOptions().AuthorizationPolicyStore))) .ToArray(); DateTimeParsingFormat = ( attributes .FirstOrDefault(x => x is DateTimeParsingFormatAttribute) as DateTimeParsingFormatAttribute )?.ParsingFormat; foreach (var action in Actions) { action.Init(optionsRetriver); } } }
public StackQueryBinder(ILiteApiOptionsAccessor optionsRetriever) : base(optionsRetriever) { }
/// <summary> /// Initializes a new instance of the <see cref="ControllerDiscoverer"/> class. /// </summary> /// <param name="actionDiscoverer">Instance of <see cref="IActionDiscoverer"/></param> /// <exception cref="System.ArgumentNullException"></exception> public ControllerDiscoverer(IActionDiscoverer actionDiscoverer, ILiteApiOptionsAccessor optionsRetriever) { _actionDiscoverer = actionDiscoverer ?? throw new ArgumentNullException(nameof(actionDiscoverer)); _optionsRetriever = optionsRetriever ?? throw new ArgumentNullException(nameof(_optionsRetriever)); }
/// <summary> /// Initializes a new instance of the <see cref="DictionaryQueryModelBinder"/> class. /// </summary> /// <param name="liteApiOptionsRetriever">The lite API options retriever.</param> public DictionaryQueryModelBinder(ILiteApiOptionsAccessor liteApiOptionsRetriever) : base(liteApiOptionsRetriever) { }
/// <summary> /// Initializes a new instance of the <see cref="ParametersDiscoverer"/> class. /// </summary> /// <param name="services">The service provider.</param> /// <param name="optionsRetriever">LiteApiOptions retriever.</param> public ParametersDiscoverer(IServiceProvider services, ILiteApiOptionsAccessor optionsRetriever) { _services = services ?? throw new ArgumentNullException(nameof(services)); _optionsRetriever = optionsRetriever ?? throw new ArgumentNullException(nameof(optionsRetriever)); }
public CustomControllerDiscoverer(IActionDiscoverer actionDiscoverer, ILiteApiOptionsAccessor optionsRetriever) : base(actionDiscoverer, optionsRetriever) { }
/// <summary> /// Initializes a new instance of the <see cref="CollectionsQueryModelBinder"/> class. /// </summary> /// <param name="liteApiOptionsRetriever">The lite API options retriever.</param> public CollectionsQueryModelBinder(ILiteApiOptionsAccessor liteApiOptionsRetriever) : base(liteApiOptionsRetriever) { }
/// <summary> /// Initializes a new instance of the <see cref="ModelBinderCollection"/> class. /// </summary> /// <param name="jsonSerializer">The JSON serialize.</param> /// <param name="serviceProvider">The service provider.</param> /// <param name="optionsRetriever">Options retriever.</param> /// <exception cref="System.ArgumentNullException"></exception> public ModelBinderCollection(IJsonSerializer jsonSerializer, IServiceProvider serviceProvider, ILiteApiOptionsAccessor optionsRetriever) { _jsonSerializer = jsonSerializer ?? throw new ArgumentNullException(nameof(jsonSerializer)); _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); _queryBinders.Add(new BasicQueryModelBinder(optionsRetriever)); _queryBinders.Add(new CollectionsQueryModelBinder(optionsRetriever)); _queryBinders.Add(new DictionaryQueryModelBinder(optionsRetriever)); _bodyBinders.Add(new FormFileBodyBinder()); }
/// <summary> /// Initializes a new instance of the <see cref="BasicQueryModelBinder"/> class. /// </summary> /// <param name="liteApiOptionsRetriever">The lite API options retriever.</param> public BasicQueryModelBinder(ILiteApiOptionsAccessor liteApiOptionsRetriever) { _optionsRetriever = liteApiOptionsRetriever ?? throw new ArgumentNullException(nameof(liteApiOptionsRetriever)); }