using LiquidCode.Tester.Worker.Services; using LiquidCode.Tester.Worker.Services.Isolate; var builder = WebApplication.CreateBuilder(args); // Add services to the container builder.Services.AddControllers(); builder.Services.AddOpenApi(); // Add HttpClient builder.Services.AddHttpClient(); // Register Isolate services builder.Services.AddSingleton(); builder.Services.AddSingleton(sp => { var logger = sp.GetRequiredService>(); var maxBoxes = builder.Configuration.GetValue("Isolate:MaxBoxes", 100); return new IsolateBoxPool(maxBoxes, logger); }); // Register application services builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); // Register compilation services builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); // Register execution services // Always register both standard and isolate versions builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); // Register testing service builder.Services.AddSingleton(); var app = builder.Build(); // Configure the HTTP request pipeline if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } app.MapControllers(); app.Run();