Exemplo n.º 1
0
 /// <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));
 }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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;
            }
        }
Exemplo n.º 4
0
        /// <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);
                }
            }
        }
Exemplo n.º 5
0
 public StackQueryBinder(ILiteApiOptionsAccessor optionsRetriever)
     : base(optionsRetriever)
 {
 }
Exemplo n.º 6
0
 /// <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));
 }
Exemplo n.º 7
0
 /// <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)
 {
 }
Exemplo n.º 8
0
 /// <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));
 }
Exemplo n.º 9
0
 public CustomControllerDiscoverer(IActionDiscoverer actionDiscoverer, ILiteApiOptionsAccessor optionsRetriever) : base(actionDiscoverer, optionsRetriever)
 {
 }
Exemplo n.º 10
0
 /// <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)
 {
 }
Exemplo n.º 11
0
        /// <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());
        }
Exemplo n.º 12
0
 /// <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));
 }