Files
spacerace/Server/Program.cs
T
2023-08-30 20:21:08 +10:00

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);
}
}