public static void Main(string[] args) { var host = CreateWebHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var context = services.GetRequiredService <UsersDbContext>(); UsersDbSeeder.Initialize(context); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occurred while seeding the database."); } } host.Run(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, CustomersDbSeeder customersDbSeeder, UsersDbSeeder usersDbSeeder) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } // Serve /node_modules as a separate root (for packages that use other npm modules client side) // app.UseFileServer(new FileServerOptions() // { // // Set root of file server // FileProvider = new PhysicalFileProvider(Path.Combine(env.ContentRootPath, "node_modules")), // RequestPath = "/node_modules", // EnableDirectoryBrowsing = false // }); app.UseStaticFiles(); // Enable middleware to serve generated Swagger as a JSON endpoint app.UseSwagger(); // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.) // Visit http://localhost:5000/swagger app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); //https://github.com/aspnet/JavaScriptServices/blob/dev/samples/angular/MusicStore/Startup.cs routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Customers", action = "Index" }); // routes.MapRoute( // name: "spa-fallback", // template: "{*anything}", // defaults: new { controller="Customers", action="Index" }); }); customersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); usersDbSeeder.SeedAsync(app.ApplicationServices).Wait(); }