コード例 #1
0
        public static IQueryExecutionBuilder UseDefaultPipeline(
            this IQueryExecutionBuilder builder,
            IQueryExecutionOptionsAccessor options)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            return(builder
                   .AddOptions(options)
                   .AddErrorHandler()
                   .AddQueryValidation()
                   .AddDefaultValidationRules()
                   .AddQueryCache(options.QueryCacheSize)
                   .AddExecutionStrategyResolver()
                   .AddDefaultParser()
                   .UseInstrumentation(options.TracingPreference)
                   .UseRequestTimeout()
                   .UseExceptionHandling()
                   .UseQueryParser()
                   .UseValidation()
                   .UseOperationResolver()
                   .UseMaxComplexity()
                   .UseOperationExecutor());
        }
コード例 #2
0
        public static IQueryExecutionBuilder UseQueryDelegationPipeline(
            this IQueryExecutionBuilder builder,
            IQueryExecutionOptionsAccessor options,
            string schemaName)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (string.IsNullOrEmpty(schemaName))
            {
                throw new ArgumentException(
                          "The schema name mustn't be null or empty.",
                          nameof(schemaName));
            }

            return(builder
                   .AddOptions(options)
                   .AddErrorHandler()
                   .AddDefaultParser()
                   .UseRequestTimeout()
                   .UseExceptionHandling()
                   .UseRemoteQueryExecutor(schemaName));
        }
コード例 #3
0
 private static IQueryExecutionBuilder AddDefaultServices(
     this IQueryExecutionBuilder builder,
     IQueryExecutionOptionsAccessor options)
 {
     return(builder
            .AddOptions(options)
            .AddErrorHandler()
            .AddQueryValidation()
            .AddDefaultValidationRules()
            .AddQueryCache(options.QueryCacheSize)
            .AddExecutionStrategyResolver()
            .AddDefaultParser()
            .AddDefaultDocumentHashProvider());
 }
コード例 #4
0
        public static IQueryExecutionBuilder AddDefaultServices(
            this IQueryExecutionBuilder builder,
            IQueryExecutionOptionsAccessor options)
        {
            IValidationBuilder validation = builder.Services.AddValidation();

            if (options.MaxExecutionDepth.HasValue)
            {
                validation.AddMaxExecutionDepthRule(options.MaxExecutionDepth.Value);
            }

            if (options.MaxOperationComplexity.HasValue)
            {
                validation.AddMaxComplexityRule(options.MaxOperationComplexity.Value);
            }

            return builder
                .AddOptions(options)
                .AddErrorHandler()
                .AddQueryCache(options.QueryCacheSize)
                .AddExecutionStrategyResolver()
                .AddDefaultParser()
                .AddDefaultDocumentHashProvider();
        }