using Bit.Seeder; using Bit.SeederApi.Extensions; using Bit.SeederApi.Services; using Bit.SharedWeb.Utilities; var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); builder.Services.AddHttpContextAccessor(); var globalSettings = builder.Services.AddGlobalSettingsServices(builder.Configuration, builder.Environment); // Common services builder.Services.AddCustomDataProtectionServices(builder.Environment, globalSettings); builder.Services.AddTokenizers(); builder.Services.AddDatabaseRepositories(globalSettings); builder.Services.AddScoped, Microsoft.AspNetCore.Identity.PasswordHasher>(); // Seeder services builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(_ => new MangleId()); builder.Services.AddScenes(); builder.Services.AddQueries(); var app = builder.Build(); // Add PlayIdMiddleware services if (globalSettings.TestPlayIdTrackingEnabled) { app.UseMiddleware(); } // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); } app.UseRouting(); app.MapControllerRoute(name: "default", pattern: "{controller=Seed}/{action=Index}/{id?}"); app.Run(); // Make Program class accessible for integration tests public partial class Program { }