37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
|
|
using Server;
|
|
using Server.Services;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
builder.Services.AddControllers();
|
|
builder.Services.AddDbContextPool<SpaceRaceDbContext>(options => {
|
|
options.UseNpgsql(
|
|
builder.Configuration.GetConnectionString("SpaceRace"),
|
|
assembly => assembly.MigrationsAssembly(typeof(SpaceRaceDbContext).Assembly.FullName)
|
|
);
|
|
});
|
|
builder.Services.AddScoped<LapTimesService>();
|
|
|
|
var app = builder.Build();
|
|
|
|
UpdateDatabase(app);
|
|
|
|
app.UseHttpsRedirection();
|
|
app.UseAuthorization();
|
|
app.MapControllers();
|
|
|
|
app.Run();
|
|
|
|
void UpdateDatabase(IApplicationBuilder app) {
|
|
try {
|
|
using var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope();
|
|
using var context = serviceScope.ServiceProvider.GetService<SpaceRaceDbContext>();
|
|
context?.Database.Migrate();
|
|
} catch (Exception e) {
|
|
Console.Error.WriteLine("Error migrating db. {0}", e);
|
|
System.Environment.Exit(1);
|
|
}
|
|
}
|