public static void Main(string[] args) { var host = BuildWebHost(args); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var context = services.GetRequiredService <EmployeeContext>(); EmployeeInitializer.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, IWebHostEnvironment env, EmployeeInitializer employeeInitializer, EmployeeTypeInitializer employeeTypeInitializer) { if (env.IsDevelopment() || env.EnvironmentName == "SprintBuildDev") { app.UseDeveloperExceptionPage(); app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1"); }); } var corsSettings = app.ApplicationServices.GetService <CorsSetting>(); app.UseCors((options) => { options.WithOrigins(corsSettings.AllowedOrigins) .AllowAnyMethod() .AllowAnyHeader(); }); app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseMiddleware(typeof(ErrorHandlingMiddleware)); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); // Uncomment to seed data employeeInitializer.Seed().Wait(); employeeTypeInitializer.Seed().Wait(); }