public DatabaseErrorPageMiddleware([NotNull] RequestDelegate next, [NotNull] DatabaseErrorPageOptions options, bool isDevMode) { Check.NotNull(next, "next"); Check.NotNull(options, "options"); if (isDevMode) { options.SetDefaultVisibility(isVisible: true); } _next = next; _options = options; }
public DatabaseErrorPageMiddleware([NotNull] RequestDelegate next, [NotNull] IServiceProvider serviceProvider, [NotNull] ILoggerFactory loggerFactory, [NotNull] DatabaseErrorPageOptions options) { Check.NotNull(next, nameof(next)); Check.NotNull(serviceProvider, nameof(serviceProvider)); Check.NotNull(loggerFactory, nameof(loggerFactory)); Check.NotNull(options, nameof(options)); _next = next; _serviceProvider = serviceProvider; _options = options; _logger = loggerFactory.CreateLogger <DatabaseErrorPageMiddleware>(); _loggerProvider = new DataStoreErrorLoggerProvider(); loggerFactory.AddProvider(_loggerProvider); }
public DatabaseErrorPageMiddleware([NotNull] RequestDelegate next, [NotNull] IServiceProvider serviceProvider, [NotNull] ILoggerFactory loggerFactory, [NotNull] DatabaseErrorPageOptions options) { Check.NotNull(next, nameof(next)); Check.NotNull(serviceProvider, nameof(serviceProvider)); Check.NotNull(loggerFactory, nameof(loggerFactory)); Check.NotNull(options, nameof(options)); _next = next; _serviceProvider = serviceProvider; _options = options; _logger = loggerFactory.CreateLogger<DatabaseErrorPageMiddleware>(); _loggerProvider = new DataStoreErrorLoggerProvider(); loggerFactory.AddProvider(_loggerProvider); }
/// <summary> /// Captures synchronous and asynchronous database related exceptions from the pipeline that may be resolved using Entity Framework /// migrations. When these exceptions occur an HTML response with details of possible actions to resolve the issue is generated. /// </summary> /// <param name="app">The <see cref="IApplicationBuilder"/> to register the middleware with.</param> /// <param name="optionsAction">An action to set the options for the middleware. All options are disabled by default.</param> /// <returns>The same <see cref="IApplicationBuilder"/> instance so that multiple calls can be chained.</returns> public static IApplicationBuilder UseDatabaseErrorPage([NotNull] this IApplicationBuilder app, [NotNull] Action<DatabaseErrorPageOptions> optionsAction) { Check.NotNull(app, nameof(app)); Check.NotNull(optionsAction, nameof(optionsAction)); var options = new DatabaseErrorPageOptions(); optionsAction(options); app = app.UseMiddleware<DatabaseErrorPageMiddleware>(options); if(options.EnableMigrationCommands) { app.UseMigrationsEndPoint(o => o.Path = options.MigrationsEndPointPath); } return app; }