Pack logic cleanup

This commit is contained in:
gamer147
2026-05-24 09:27:10 -04:00
parent 79209bd70b
commit d9ef9fe1fc
33 changed files with 71175 additions and 245 deletions

View File

@@ -63,8 +63,14 @@ public class Program
builder.Services.AddTransient<IGlobalsRepository, GlobalsRepository>();
builder.Services.AddTransient<IDeckRepository, DeckRepository>();
builder.Services.AddTransient<IPackRepository, PackRepository>();
// Scoped (not Singleton) to avoid the singleton-depends-on-scoped-DbContext lifecycle
// pitfall. Cost: one indexed single-row query per request — trivial. Restart still picks
// up DB-edit changes since each new request rebuilds the scope.
builder.Services.AddScoped<SVSim.Database.Models.GameConfigRoot>(sp =>
sp.GetRequiredService<SVSim.Database.Repositories.Globals.IGlobalsRepository>()
.GetGameConfiguration("default").GetAwaiter().GetResult().Config);
builder.Services.AddScoped<ICardPoolProvider, DbCardPoolProvider>();
builder.Services.AddSingleton<PackOpenService>();
builder.Services.AddScoped<PackOpenService>();
builder.Services.AddSingleton<IRandom, SystemRandom>();
#endregion
@@ -93,6 +99,7 @@ public class Program
if (dbContext.Database.IsRelational() && !app.Environment.IsEnvironment("Testing"))
{
dbContext.UpdateDatabase();
dbContext.EnsureSeedDataAsync().GetAwaiter().GetResult();
}
}