diff --git a/src/Web/Web.csproj b/src/Web/Web.csproj
index d219d95..3a077fb 100644
--- a/src/Web/Web.csproj
+++ b/src/Web/Web.csproj
@@ -10,6 +10,9 @@
Geekbot.Web
Geekbot.Web
NU1701
+ CS8618
+ enable
+ enable
diff --git a/src/Web/WebApiStartup.cs b/src/Web/WebApiStartup.cs
index 273b247..fcf90f6 100644
--- a/src/Web/WebApiStartup.cs
+++ b/src/Web/WebApiStartup.cs
@@ -1,8 +1,6 @@
-using System;
-using System.Net;
+using System.Net;
using System.Reflection;
using Discord.Commands;
-using Discord.WebSocket;
using Geekbot.Core;
using Geekbot.Core.Database;
using Geekbot.Core.GlobalSettings;
@@ -11,68 +9,42 @@ using Geekbot.Core.Highscores;
using Geekbot.Core.Interactions;
using Geekbot.Core.Logger;
using Geekbot.Web.Logging;
-using Microsoft.AspNetCore;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-namespace Geekbot.Web
+namespace Geekbot.Web;
+
+public static class WebApiStartup
{
- public static class WebApiStartup
+ // Using the "Microsoft.NET.Sdk.Web" SDK requires a static main function...
+ public static void Main()
{
- // Using the "Microsoft.NET.Sdk.Web" SDK requires a static main function...
- public static void Main() {}
-
- public static void StartWebApi(IServiceProvider commandProvider, IGeekbotLogger logger, RunParameters runParameters, CommandService commandService,
- DatabaseContext databaseContext, IGlobalSettings globalSettings, IHighscoreManager highscoreManager, IGuildSettingsManager guildSettingsManager)
- {
- WebHost.CreateDefaultBuilder()
- .UseKestrel(options =>
- {
- options.Listen(IPAddress.Any, int.Parse(runParameters.ApiPort));
- })
- .ConfigureServices(services =>
- {
- services.AddControllers().AddJsonOptions(options =>
- {
- options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
- });
- services.AddCors(options =>
- {
- options.AddPolicy("AllowSpecificOrigin",
- builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
- });
- services.AddSentry();
+ }
- var interactionCommandManager = new InteractionCommandManager(commandProvider, guildSettingsManager);
+ public static void StartWebApi(IServiceProvider commandProvider, IGeekbotLogger logger, RunParameters runParameters, CommandService commandService,
+ DatabaseContext databaseContext, IGlobalSettings globalSettings, IHighscoreManager highscoreManager, IGuildSettingsManager guildSettingsManager)
+ {
+ var builder = WebApplication.CreateBuilder(new WebApplicationOptions() { ApplicationName = typeof(WebApiStartup).GetTypeInfo().Assembly.FullName });
+ builder.WebHost.UseKestrel(options => options.Listen(IPAddress.Any, int.Parse(runParameters.ApiPort)));
- services.AddSingleton(databaseContext);
- services.AddSingleton(globalSettings);
- services.AddSingleton(highscoreManager);
- services.AddSingleton(logger);
- services.AddSingleton(interactionCommandManager);
+ builder.Services.AddControllers();
+ builder.Services.AddCors(options => options.AddPolicy("AllowSpecificOrigin", cors => cors.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()));
- if (runParameters.DisableGateway) return;
- services.AddSingleton(commandService);
- })
- .Configure(app =>
- {
- app.UseRouting();
- app.UseCors(builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().Build());
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllers();
- });
- })
- .ConfigureLogging(logging =>
- {
- logging.ClearProviders();
- logging.SetMinimumLevel(LogLevel.Debug);
- logging.AddProvider(new AspLogProvider(logger));
- })
- .UseSetting(WebHostDefaults.ApplicationKey, typeof(WebApiStartup).GetTypeInfo().Assembly.FullName)
- .Build().Run();
- }
+ var interactionCommandManager = new InteractionCommandManager(commandProvider, guildSettingsManager);
+
+ builder.Services.AddSingleton(databaseContext);
+ builder.Services.AddSingleton(globalSettings);
+ builder.Services.AddSingleton(highscoreManager);
+ builder.Services.AddSingleton(logger);
+ builder.Services.AddSingleton(interactionCommandManager);
+ if (!runParameters.DisableGateway) builder.Services.AddSingleton(commandService);
+
+ builder.Logging.ClearProviders();
+ builder.Logging.SetMinimumLevel(LogLevel.Debug);
+ builder.Logging.AddProvider(new AspLogProvider(logger));
+
+ var app = builder.Build();
+ app.UseCors(cors => cors.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().Build());
+ app.MapControllers();
+
+ app.Run();
}
}
\ No newline at end of file