Example #1
0
        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);
        }
Example #2
0
        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);
        }