public static IQueryExecutionBuilder UseInstrumentation( this IQueryExecutionBuilder builder, IInstrumentationOptionsAccessor options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } builder.Services .AddSingleton(options) .AddScoped <DiagnosticListenerInitializer>(); if (options.EnableTracing) { builder.Services .AddScoped < IApolloTracingResultBuilder, ApolloTracingResultBuilder>() .AddScoped < DiagnosticListener, ApolloTracingDiagnosticListener>(); } return(builder.Use <InstrumentationMiddleware>()); }
public static IQueryExecutionBuilder UseInstrumentation( this IQueryExecutionBuilder builder, TracingPreference tracingPreference) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var listener = new DiagnosticListener(DiagnosticNames.Listener); builder .RemoveService <DiagnosticListener>() .RemoveService <DiagnosticSource>(); builder.Services .AddSingleton(listener) .AddSingleton <DiagnosticSource>(listener) .AddSingleton(sp => new QueryExecutionDiagnostics( sp.GetRequiredService <DiagnosticListener>(), sp.GetServices <IDiagnosticObserver>())); if (tracingPreference != TracingPreference.Never) { builder .AddDiagnosticObserver(new ApolloTracingDiagnosticObserver( tracingPreference)); } return(builder.Use <InstrumentationMiddleware>()); }
public static IQueryExecutionBuilder UsePropagateVariables( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <CopyVariablesToResolverContextMiddleware>()); }
public static IQueryExecutionBuilder UseNoCachedQueryError( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <NoCachedQueryErrorMiddleware>()); }
public static IQueryExecutionBuilder UseWritePersistedQuery( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <WritePersistedQueryMiddleware>()); }
public static IQueryExecutionBuilder UseValidation( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <ValidateQueryMiddleware>()); }
public static IQueryExecutionBuilder UseMaxComplexity( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <MaxComplexityMiddleware>()); }
public static IQueryExecutionBuilder UseOperationResolver( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <ResolveOperationMiddleware>()); }
public static IQueryExecutionBuilder UseRequestTimeout( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <RequestTimeoutMiddleware>()); }
public static IQueryExecutionBuilder UseExceptionHandling( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use <ExceptionMiddleware>()); }
public static IQueryExecutionBuilder Use <TMiddleware>( this IQueryExecutionBuilder builder) where TMiddleware : class { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.Use(ClassMiddlewareFactory.Create <TMiddleware>())); }
public static IQueryExecutionBuilder Use <TMiddleware>( this IQueryExecutionBuilder builder, Func <IServiceProvider, QueryDelegate, TMiddleware> factory) where TMiddleware : class { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } return(builder.Use(ClassMiddlewareFactory.Create(factory))); }
public static IQueryExecutionBuilder UseRequestTimeout( this IQueryExecutionBuilder builder, IRequestTimeoutOptionsAccessor options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } builder.Services.AddSingleton(options); return(builder.Use <RequestTimeoutMiddleware>()); }
public static IQueryExecutionBuilder UseRemoteQueryExecutor( this IQueryExecutionBuilder builder, string schemaName) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrEmpty(schemaName)) { throw new ArgumentException( "The schema name mustn't be null or empty.", nameof(schemaName)); } return(builder.Use((services, next) => new RemoteQueryMiddleware(next, schemaName))); }
public static IQueryExecutionBuilder UseCoerceVariables( this IQueryExecutionBuilder builder) { return(builder.Use <CoerceVariablesMiddleware>()); }
public static IQueryExecutionBuilder UseOperationResolver( this IQueryExecutionBuilder builder) { return(builder.Use <ResolveOperationMiddleware>()); }
public static IQueryExecutionBuilder UseOperationExecutor( this IQueryExecutionBuilder builder) { return(builder.Use <ExecuteOperationMiddleware>()); }
public static IQueryExecutionBuilder Use <TMiddleware>( this IQueryExecutionBuilder builder) where TMiddleware : class { return(builder.Use(ClassMiddlewareFactory.Create <TMiddleware>())); }
public static IQueryExecutionBuilder UseMaxComplexity( this IQueryExecutionBuilder builder) { return(builder.Use <MaxComplexityMiddleware>()); }
public static IQueryExecutionBuilder UseValidation( this IQueryExecutionBuilder builder) { return(builder.Use <ValidateQueryMiddleware>()); }
public static IQueryExecutionBuilder UseQueryParser( this IQueryExecutionBuilder builder) { return(builder.Use <ParseQueryMiddleware>()); }
public static IQueryExecutionBuilder UseDiagnostics( this IQueryExecutionBuilder builder) { return(builder.Use <DiagnosticMiddleware>()); }
public static IQueryExecutionBuilder UseExceptionHandling( this IQueryExecutionBuilder builder) { return(builder.Use <ExceptionMiddleware>()); }