using DysonNetwork.Pass; using DysonNetwork.Pass.Account; using DysonNetwork.Pass.Auth; using DysonNetwork.Pass.Startup; using DysonNetwork.Shared.Startup; using Microsoft.AspNetCore.Builder; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; var builder = WebApplication.CreateBuilder(args); builder.ConfigureAppKestrel(); builder.Services.AddAppSwagger(); builder.Services.AddAppAuthentication(); builder.Services.AddAppRateLimiting(); builder.Services.AddAppBusinessServices(builder.Configuration); builder.Services.AddAppServices(builder.Configuration); builder.Services.AddControllers(); builder.Services.AddMagicOnion(); builder.Services.AddDbContext(options => options.UseNpgsql(builder.Configuration.GetConnectionString("App"))); builder.Services.AddScoped(); builder.Services.AddScoped(); var app = builder.Build(); // Configure the HTTP request pipeline. app.UseAuthorization(); app.ConfigureAppMiddleware(builder.Configuration); app.MapControllers(); app.MapMagicOnionService(); // Run database migrations using (var scope = app.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService(); await db.Database.MigrateAsync(); } app.Run();