/// <inheritdoc/>
        public Action <IApplicationBuilder> Configure(Action <IApplicationBuilder> next) => app =>
        {
            using (var scope = app.ApplicationServices.CreateScope())
            {
                // Create a middleware configuration context with a scoped service provider
                var scopedServiceProvider = scope.ServiceProvider;
                var ctx = new ConfigureMiddlewareContext
                {
                    Configuration      = _configuration,
                    HostingEnvironment = _hostingEnvironment,
                    ServiceProvider    = scopedServiceProvider
                };

                foreach (var module in _options.StartupModules)
                {
                    // Invoke the callback to configure middleware
                    module.Configure(app, ctx);
                }

                if (_logger.IsEnabled(LogLevel.Information))
                {
                    _logger.LogInformation("Invoked {StartupModuleCount} startup modules: {StartupModules}",
                                           _options.StartupModules.Count, string.Join(", ", _options.StartupModules.Select(s => s.GetType().Name)));
                }

                var applicationInitializers = _options.ApplicationInitializers
                                              .Select(t =>
                {
                    try
                    {
                        return(ActivatorUtilities.CreateInstance(scopedServiceProvider, t));
                    }
                    catch (Exception ex)
                    {
                        throw new InvalidOperationException($"Failed to create instace of {nameof(IApplicationInitializer)} '{t.Name}'.", ex);
                    }
                })
                                              .Cast <IApplicationInitializer>()
                                              .ToArray();

                foreach (var initializer in applicationInitializers)
                {
                    try
                    {
                        if (_logger.IsEnabled(LogLevel.Information))
                        {
                            _logger.LogInformation("Invoking application initializer {ApplicationInitializerName}", initializer.GetType().Name);
                        }

                        initializer.Invoke().GetAwaiter().GetResult();
                    }
                    catch (Exception ex)
                    {
                        throw new InvalidOperationException($"An exception occured during the execution of {nameof(IApplicationInitializer)} '{initializer.GetType().Name}'.", ex);
                    }
                }
            }

            next(app);
        };
Ejemplo n.º 2
0
 public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
 {
     Assert.NotNull(app);
     Assert.NotNull(context);
     Assert.NotNull(context.Configuration);
     Assert.NotNull(context.HostingEnvironment);
     Assert.NotNull(context.ServiceProvider);
 }
Ejemplo n.º 3
0
 public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
 {
     app.Map("/message", sub => sub.Run(async ctx =>
     {
         var msgProvider = ctx.RequestServices.GetRequiredService <MessageProvider>();
         await ctx.Response.WriteAsync(msgProvider.GetMessage());
     }));
 }
Ejemplo n.º 4
0
    /// <summary>
    /// Calls <see cref="IStartupModule.Configure(IApplicationBuilder, ConfigureMiddlewareContext)"/> on the
    /// discovered <see cref="IStartupModule"/>.
    /// </summary>
    public void Configure(IApplicationBuilder app, IConfiguration configuration, IWebHostEnvironment hostingEnvironment)
    {
        using var scope = app.ApplicationServices.CreateScope();
        var ctx = new ConfigureMiddlewareContext(configuration, hostingEnvironment, scope.ServiceProvider, _options);

        foreach (var cfg in _options.StartupModules)
        {
            cfg.Configure(app, ctx);
        }
    }
Ejemplo n.º 5
0
 public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
 {
     app.UseSwagger();
     app.UseSwaggerUI(options =>
     {
         //options.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelper V1");
         //options.RoutePrefix = "";
         typeof(ApiVersions).GetEnumNames().OrderByDescending(v => v).ToList().ForEach(version =>
         {
             options.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"Blog.Core {version}");
         });
         options.RoutePrefix = "";
     });
 }
 public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context) => throw new NotImplementedException();
 public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
 {
 }
Ejemplo n.º 8
0
 public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext contex)
 {
     Console.WriteLine("HangfireStartupModule----Configure");
 }
Ejemplo n.º 9
0
 public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
 {
     app.UseCors("LimitRequests");
 }