示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ExpressionParser"/> class.
        /// </summary>
        /// <param name="searchParameterDefinitionManagerResolver">The search parameter definition manager.</param>
        /// <param name="searchParameterExpressionParser">The parser used to parse the search value into a search expression.</param>
        public ExpressionParser(
            SearchableSearchParameterDefinitionManagerResolver searchParameterDefinitionManagerResolver,
            ISearchParameterExpressionParser searchParameterExpressionParser)
        {
            EnsureArg.IsNotNull(searchParameterDefinitionManagerResolver, nameof(searchParameterDefinitionManagerResolver));
            EnsureArg.IsNotNull(searchParameterExpressionParser, nameof(searchParameterExpressionParser));

            _searchParameterDefinitionManager = searchParameterDefinitionManagerResolver();
            _searchParameterExpressionParser  = searchParameterExpressionParser;
        }
        public SystemConformanceProvider(
            IModelInfoProvider modelInfoProvider,
            SearchableSearchParameterDefinitionManagerResolver searchParameterDefinitionManagerResolver,
            Func <IScoped <IEnumerable <IProvideCapability> > > capabilityProviders)
        {
            EnsureArg.IsNotNull(modelInfoProvider, nameof(modelInfoProvider));
            EnsureArg.IsNotNull(searchParameterDefinitionManagerResolver, nameof(searchParameterDefinitionManagerResolver));
            EnsureArg.IsNotNull(capabilityProviders, nameof(capabilityProviders));

            _modelInfoProvider = modelInfoProvider;
            _searchParameterDefinitionManager = searchParameterDefinitionManagerResolver();
            _capabilityProviders = capabilityProviders;
        }
        public SearchOptionsFactory(
            IExpressionParser expressionParser,
            SearchableSearchParameterDefinitionManagerResolver searchParameterDefinitionManagerResolver,
            ILogger <SearchOptionsFactory> logger)
        {
            EnsureArg.IsNotNull(expressionParser, nameof(expressionParser));
            EnsureArg.IsNotNull(searchParameterDefinitionManagerResolver, nameof(searchParameterDefinitionManagerResolver));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _expressionParser = expressionParser;
            _searchParameterDefinitionManager = searchParameterDefinitionManagerResolver();
            _logger = logger;

            _resourceTypeSearchParameter = _searchParameterDefinitionManager.GetSearchParameter(ResourceType.Resource.ToString(), SearchParameterNames.ResourceType);
        }
        public SearchParameterExpressionParser(
            SearchableSearchParameterDefinitionManagerResolver searchParameterDefinitionManagerResolver,
            IReferenceSearchValueParser referenceSearchValueParser)
        {
            EnsureArg.IsNotNull(searchParameterDefinitionManagerResolver, nameof(searchParameterDefinitionManagerResolver));
            EnsureArg.IsNotNull(referenceSearchValueParser, nameof(referenceSearchValueParser));

            _searchParameterDefinitionManager = searchParameterDefinitionManagerResolver();
            _referenceSearchValueParser       = referenceSearchValueParser;

            _parserDictionary = new Dictionary <SearchParamType, Func <string, ISearchValue> >()
            {
                { SearchParamType.Date, DateTimeSearchValue.Parse },
                { SearchParamType.Number, NumberSearchValue.Parse },
                { SearchParamType.Quantity, QuantitySearchValue.Parse },
                { SearchParamType.Reference, _referenceSearchValueParser.Parse },
                { SearchParamType.String, StringSearchValue.Parse },
                { SearchParamType.Token, TokenSearchValue.Parse },
                { SearchParamType.Uri, UriSearchValue.Parse },
            };
        }