45 lines
1.5 KiB
C#
45 lines
1.5 KiB
C#
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<FragalyticsOptions>(builder.Configuration.GetSection("Fragalytics"));
|
|
builder.Services.AddRazorPages();
|
|
builder.Services.AddSingleton<JsonAppStore>();
|
|
builder.Services.AddSingleton<ScoringRulesProvider>();
|
|
builder.Services.AddSingleton<IRenderWorkerAdapter, NoOpRenderWorkerAdapter>();
|
|
builder.Services.AddSingleton<IDemoParserAdapter>(serviceProvider =>
|
|
{
|
|
var options = serviceProvider.GetRequiredService<IOptions<FragalyticsOptions>>().Value;
|
|
return string.Equals(options.Parser.Mode, "external", StringComparison.OrdinalIgnoreCase)
|
|
? new ExternalProcessParserAdapter(serviceProvider.GetRequiredService<IOptions<FragalyticsOptions>>())
|
|
: new SampleDemoParserAdapter();
|
|
});
|
|
builder.Services.AddSingleton<MatchScoringService>();
|
|
builder.Services.AddSingleton<DemoIngestService>();
|
|
builder.Services.AddSingleton<ClipMediaService>();
|
|
builder.Services.AddSingleton<QueryService>();
|
|
builder.Services.AddHostedService<DemoProcessingWorker>();
|
|
|
|
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
|
|
{
|
|
}
|