Пример #1
0
        public static async Task <IApplicationBuilder> UseOcelot(this IApplicationBuilder builder, OcelotPipelineConfiguration pipelineConfiguration)
        {
            var configuration = await CreateConfiguration(builder);

            CreateAdministrationArea(builder, configuration);

            if (UsingRafty(builder))
            {
                SetUpRafty(builder);
            }

            if (UsingEurekaServiceDiscoveryProvider(configuration))
            {
                builder.UseDiscoveryClient();
            }

            ConfigureDiagnosticListener(builder);

            var pipelineBuilder = new OcelotPipelineBuilder(builder.ApplicationServices);

            pipelineBuilder.BuildOcelotPipeline(pipelineConfiguration);

            var firstDelegate = pipelineBuilder.Build();

            /*
             * inject first delegate into first piece of asp.net middleware..maybe not like this
             * then because we are updating the http context in ocelot it comes out correct for
             * rest of asp.net..
             */

            builder.Properties["analysis.NextMiddlewareName"] = "TransitionToOcelotMiddleware";

            builder.Use(async(context, task) =>
            {
                var downstreamContext = new DownstreamContext(context);
                await firstDelegate.Invoke(downstreamContext);
            });

            return(builder);
        }
Пример #2
0
        public static async Task <IApplicationBuilder> UseOcelot(this IApplicationBuilder app, Action <IOcelotPipelineBuilder, OcelotPipelineConfiguration> builderAction, OcelotPipelineConfiguration configuration)
        {
            await CreateConfiguration(app);  // initConfiguration

            ConfigureDiagnosticListener(app);

            var ocelotPipelineBuilder = new OcelotPipelineBuilder(app.ApplicationServices);

            builderAction?.Invoke(ocelotPipelineBuilder, configuration ?? new OcelotPipelineConfiguration());

            var ocelotDelegate = ocelotPipelineBuilder.Build();

            app.Properties["analysis.NextMiddlewareName"] = "TransitionToOcelotMiddleware";

            app.Use(async(context, task) =>
            {
                var downstreamContext = new DownstreamContext(context);
                await ocelotDelegate.Invoke(downstreamContext);
            });

            return(app);
        }
Пример #3
0
        /// <summary>
        /// Registers Ocelot with a combination of default middlewares and optional middlewares in the configuration
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="pipelineConfiguration"></param>
        /// <returns></returns>
        public static async Task <IApplicationBuilder> UseOcelot(this IApplicationBuilder builder, OcelotPipelineConfiguration pipelineConfiguration)
        {
            var configuration = await CreateConfiguration(builder);

            CreateAdministrationArea(builder, configuration);

            if (UsingRafty(builder))
            {
                SetUpRafty(builder);
            }

            //ToDo
            //Invoke Steeltow Service Discoverys
            UserSteeltoeServiceDiscovery(builder, configuration);

            ConfigureDiagnosticListener(builder);

            var pipelineBuilder = new OcelotPipelineBuilder(builder.ApplicationServices);

            pipelineBuilder.BuildOcelotPipeline(pipelineConfiguration);

            var firstDelegate = pipelineBuilder.Build();

            /*
             * inject first delegate into first piece of asp.net middleware..maybe not like this
             * then because we are updating the http context in ocelot it comes out correct for
             * rest of asp.net..
             */

            builder.Use(async(context, task) =>
            {
                var downstreamContext = new DownstreamContext(context);
                await firstDelegate.Invoke(downstreamContext);
            });

            return(builder);
        }
        private static IApplicationBuilder CreateOcelotPipeline(IApplicationBuilder builder, OcelotPipelineConfiguration pipelineConfiguration)
        {
            var pipelineBuilder = new OcelotPipelineBuilder(builder.ApplicationServices);

            pipelineBuilder.BuildOcelotPipeline(pipelineConfiguration);

            var firstDelegate = pipelineBuilder.Build();

            /*
             * inject first delegate into first piece of asp.net middleware..maybe not like this
             * then because we are updating the http context in ocelot it comes out correct for
             * rest of asp.net..
             */

            builder.Properties["analysis.NextMiddlewareName"] = "TransitionToOcelotMiddleware";

            builder.Use(async(context, task) =>
            {
                var downstreamContext = new DownstreamContext(context);
                await firstDelegate.Invoke(downstreamContext);
            });

            return(builder);
        }
Пример #5
0
 public void SetPipelineError(DownstreamContext context, List <Error> errors)
 {
     context.Errors = errors;
 }
Пример #6
0
 public void SetPipelineError(DownstreamContext context, Error error)
 {
     Logger.LogWarning(error.Message);
     context.Errors.Add(error);
 }