using YD_TrainingCompetition_Api.Competition; using YD_TrainingCompetition_Api.Hubs; using YD_TrainingCompetition_Api.Options; using YD_TrainingCompetition_Api.Protocols; using YD_TrainingCompetition_Api.Serial; using YD_TrainingCompetition_Api.Services; var builder = WebApplication.CreateBuilder(args); builder.WebHost.UseUrls("http://*:9996"); builder.Services.Configure(builder.Configuration.GetSection(ScoringOptions.SectionName)); builder.Services.Configure(builder.Configuration.GetSection(Serial24GOptions.SectionName)); builder.Services.Configure(builder.Configuration.GetSection(RosterOptions.SectionName)); builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddSignalR(); builder.Services.AddCors(options => { options.AddDefaultPolicy(policy => { policy.AllowAnyHeader() .AllowAnyMethod() .SetIsOriginAllowed(_ => true) .AllowCredentials(); }); }); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseRouting(); app.UseCors(); app.MapControllers(); app.MapHub("/hubs/scoring"); app.Run();