using Microsoft.EntityFrameworkCore; using radiuscontroller.Components; using radiuscontroller.Data; using radiuscontroller.Services; var builder = WebApplication.CreateBuilder(args); // Add database context var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? "Host=localhost;Port=5432;Database=radius;Username=radius;Password=radpass"; builder.Services.AddDbContext(options => options.UseNpgsql(connectionString)); // Add services builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddHostedService(); // Add Razor components builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); var app = builder.Build(); // Auto-seed admin user and default settings if DB available using (var scope = app.Services.CreateScope()) { var radiusService = scope.ServiceProvider.GetRequiredService(); await radiusService.EnsureDatabaseCreatedAndSeededAsync(); } // Configure HTTP request pipeline if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error", createScopeForErrors: true); app.UseHsts(); } app.UseHttpsRedirection(); app.UseAntiforgery(); app.MapStaticAssets(); app.MapRazorComponents() .AddInteractiveServerRenderMode(); app.Run();