/// <summary>
 /// Initializes a new instance with the specified <see cref="IDocumentBuilder"/>,
 /// <see cref="IDocumentValidator"/>, <see cref="IComplexityAnalyzer"/>,
 /// <see cref="IDocumentCache"/> and a set of <see cref="IConfigureExecutionOptions"/> instances.
 /// </summary>
 public DocumentExecuter(IDocumentBuilder documentBuilder, IDocumentValidator documentValidator, IComplexityAnalyzer complexityAnalyzer, IDocumentCache documentCache, IEnumerable <IConfigureExecutionOptions> configurations, IExecutionStrategySelector executionStrategySelector)
 {
     _documentBuilder           = documentBuilder ?? throw new ArgumentNullException(nameof(documentBuilder));
     _documentValidator         = documentValidator ?? throw new ArgumentNullException(nameof(documentValidator));
     _complexityAnalyzer        = complexityAnalyzer ?? throw new ArgumentNullException(nameof(complexityAnalyzer));
     _documentCache             = documentCache ?? throw new ArgumentNullException(nameof(documentCache));
     _configurations            = configurations?.ToArray();
     _executionStrategySelector = executionStrategySelector ?? throw new ArgumentNullException(nameof(executionStrategySelector));
 }
 /// <summary>
 /// Initializes a new instance with the specified <see cref="IDocumentBuilder"/>,
 /// <see cref="IDocumentValidator"/>, <see cref="IComplexityAnalyzer"/>,
 /// <see cref="IDocumentCache"/> and a set of <see cref="IConfigureExecutionOptions"/> instances.
 /// </summary>
 private DocumentExecuter(IDocumentBuilder documentBuilder, IDocumentValidator documentValidator, IComplexityAnalyzer complexityAnalyzer, IDocumentCache documentCache, IExecutionStrategySelector executionStrategySelector, IEnumerable <IConfigureExecution> configurations)
 {
     // TODO: in v6 make this public
     _documentBuilder           = documentBuilder ?? throw new ArgumentNullException(nameof(documentBuilder));
     _documentValidator         = documentValidator ?? throw new ArgumentNullException(nameof(documentValidator));
     _complexityAnalyzer        = complexityAnalyzer ?? throw new ArgumentNullException(nameof(complexityAnalyzer));
     _documentCache             = documentCache ?? throw new ArgumentNullException(nameof(documentCache));
     _executionStrategySelector = executionStrategySelector ?? throw new ArgumentNullException(nameof(executionStrategySelector));
     _execution = BuildExecutionDelegate(configurations);
 }
 public ApolloTracingDocumentExecuter(
     IDocumentBuilder documentBuilder,
     IDocumentValidator documentValidator,
     IComplexityAnalyzer complexityAnalyzer,
     IDocumentCache documentCache,
     IEnumerable <IConfigureExecutionOptions> configureExecutionOptions,
     IExecutionStrategySelector executionStrategySelector)
     : base(documentBuilder, documentValidator, complexityAnalyzer, documentCache, configureExecutionOptions, executionStrategySelector)
 {
 }
        /// <summary>
        /// Initializes a new instance with the specified <see cref="IDocumentBuilder"/>,
        /// <see cref="IDocumentValidator"/>, <see cref="IComplexityAnalyzer"/>,
        /// <see cref="IDocumentCache"/> and a set of <see cref="IConfigureExecutionOptions"/> instances.
        /// </summary>
        public DocumentExecuter(IDocumentBuilder documentBuilder, IDocumentValidator documentValidator, IComplexityAnalyzer complexityAnalyzer, IDocumentCache documentCache, IExecutionStrategySelector executionStrategySelector, IEnumerable <IConfigureExecution> configurations, IEnumerable <IConfigureExecutionOptions> optionsConfigurations)
#pragma warning disable CS0618 // Type or member is obsolete
            : this(documentBuilder, documentValidator, complexityAnalyzer, documentCache, executionStrategySelector, configurations.Append(new ConfigureExecutionOptionsMapper(optionsConfigurations)))
#pragma warning restore CS0618 // Type or member is obsolete
        {
            // TODO: remove in v6
        }
 public DocumentExecuter(IDocumentBuilder documentBuilder, IDocumentValidator documentValidator, IComplexityAnalyzer complexityAnalyzer, IDocumentCache documentCache, IEnumerable <IConfigureExecutionOptions> configurations, IExecutionStrategySelector executionStrategySelector)
     : this(documentBuilder, documentValidator, complexityAnalyzer, documentCache, executionStrategySelector, new IConfigureExecution[] { new ConfigureExecutionOptionsMapper(configurations) })
 {
 }