public static IRequestExecutorBuilder PublishSchemaDefinition( this IRequestExecutorBuilder builder, Action <IPublishSchemaDefinitionDescriptor> configure) { var descriptor = new PublishSchemaDefinitionDescriptor(builder); configure(descriptor); builder .AddType <SchemaDefinitionType>() .TryAddTypeInterceptor <SchemaDefinitionTypeInterceptor>() .TryAddSchemaInterceptor(new SchemaDefinitionSchemaInterceptor(descriptor)); return(builder); }
public static IRequestExecutorBuilder PublishSchemaDefinition( this IRequestExecutorBuilder builder, Action <IPublishSchemaDefinitionDescriptor> configure) { var descriptor = new PublishSchemaDefinitionDescriptor(builder); configure(descriptor); var typeInterceptor = new SchemaDefinitionTypeInterceptor(!descriptor.HasPublisher); var schemaInterceptor = new SchemaDefinitionSchemaInterceptor(descriptor); builder .AddType <SchemaDefinitionType>() .TryAddTypeInterceptor(typeInterceptor) .TryAddSchemaInterceptor(schemaInterceptor) .ConfigureOnRequestExecutorCreatedAsync( async(sp, executor, ct) => await descriptor.PublishAsync(sp, ct)); return(builder); }