using Fragalytics.Web; using Fragalytics.Web.Infrastructure; using Fragalytics.Web.Services; using Fragalytics.Web.Services.Parser; using Fragalytics.Web.Services.Render; using Fragalytics.Web.Services.Scoring; using Microsoft.Extensions.Options; var builder = WebApplication.CreateBuilder(args); builder.Services.Configure(builder.Configuration.GetSection("Fragalytics")); builder.Services.AddRazorPages(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(serviceProvider => { var options = serviceProvider.GetRequiredService>().Value; return string.Equals(options.Parser.Mode, "external", StringComparison.OrdinalIgnoreCase) ? new ExternalProcessParserAdapter(serviceProvider.GetRequiredService>()) : new SampleDemoParserAdapter(); }); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseStaticFiles(); app.UseRouting(); app.MapRazorPages(); app.Run(); public partial class Program { }