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 AddOptions( this IQueryExecutionBuilder builder, IQueryExecutionOptionsAccessor options) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } builder .RemoveService <IQueryExecutionOptionsAccessor>() .RemoveService <IErrorHandlerOptionsAccessor>() .RemoveService <IInstrumentationOptionsAccessor>() .RemoveService <IQueryCacheSizeOptionsAccessor>() .RemoveService <IRequestTimeoutOptionsAccessor>() .RemoveService <IValidateQueryOptionsAccessor>(); builder.Services.AddOptions(options); return(builder); }
public static IQueryExecutionBuilder AddParser <T>( this IQueryExecutionBuilder builder) where T : class, IQueryParser { builder.RemoveService <IQueryParser>(); builder.Services.AddSingleton <IQueryParser, T>(); return(builder); }
public static IQueryExecutionBuilder AddMD5DocumentHashProvider( this IQueryExecutionBuilder builder, HashFormat format) { builder.RemoveService <IDocumentHashProvider>(); builder.Services.AddSingleton <IDocumentHashProvider>( new MD5DocumentHashProvider(format)); return(builder); }
public static IQueryExecutionBuilder AddSha256DocumentHashProvider( this IQueryExecutionBuilder builder) { builder.RemoveService <IDocumentHashProvider>(); builder.Services.AddSingleton < IDocumentHashProvider, Sha256DocumentHashProvider>(); return(builder); }
public static IQueryExecutionBuilder AddExecutionStrategyResolver( this IQueryExecutionBuilder builder) { builder.RemoveService <IExecutionStrategyResolver>(); builder.Services.AddSingleton < IExecutionStrategyResolver, ExecutionStrategyResolver>(); return(builder); }
private static IQueryExecutionBuilder RemoveService <TService>( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.RemoveService(typeof(TService))); }
public static IQueryExecutionBuilder AddParser <T>( this IQueryExecutionBuilder builder) where T : class, IQueryParser { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.RemoveService <IQueryParser>(); builder.Services.AddSingleton <IQueryParser, T>(); return(builder); }
public static IQueryExecutionBuilder AddParser <T>( this IQueryExecutionBuilder builder, Func <IServiceProvider, IQueryParser> factory) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } builder.RemoveService <IQueryParser>(); builder.Services.AddSingleton(factory); return(builder); }
public static IQueryExecutionBuilder AddErrorHandler( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder .RemoveService <IErrorHandler>(); builder.Services .AddSingleton <IErrorHandler, ErrorHandler>(); return(builder); }
public static IQueryExecutionBuilder AddQueryCache( this IQueryExecutionBuilder builder, int size) { builder .RemoveService <Cache <DirectiveLookup> >() .RemoveService <Cache <DocumentNode> >() .RemoveService <Cache <OperationDefinitionNode> >(); builder.Services .AddSingleton(new Cache <DirectiveLookup>(size)) .AddSingleton(new Cache <DocumentNode>(size)) .AddSingleton(new Cache <OperationDefinitionNode>(size)); return(builder); }
public static IQueryExecutionBuilder AddExecutionStrategyResolver( this IQueryExecutionBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.RemoveService<IExecutionStrategyResolver>(); builder.Services.AddSingleton< IExecutionStrategyResolver, ExecutionStrategyResolver>(); return builder; }
public static IQueryExecutionBuilder AddQueryCache( this IQueryExecutionBuilder builder, int cacheSize) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder .RemoveService <Cache <DirectiveMiddlewareCompiler> >() .RemoveService <Cache <DocumentNode> >() .RemoveService <Cache <OperationDefinitionNode> >(); builder.Services .AddSingleton(new Cache <DirectiveMiddlewareCompiler>(cacheSize)) .AddSingleton(new Cache <DocumentNode>(cacheSize)) .AddSingleton(new Cache <OperationDefinitionNode>(cacheSize)); return(builder); }
private static IQueryExecutionBuilder RemoveService <TService>( this IQueryExecutionBuilder builder) { return(builder.RemoveService(typeof(TService))); }