Ready to test
This commit is contained in:
54
Program.cs
Normal file
54
Program.cs
Normal file
@ -0,0 +1,54 @@
|
||||
using Gatus.To.MonA.Models;
|
||||
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Hosting.WindowsServices;
|
||||
|
||||
namespace Gatus.To.MonA;
|
||||
|
||||
public class Program {
|
||||
|
||||
internal static async Task Main(string[] args) {
|
||||
ILogger<Program>? logger = null;
|
||||
#pragma warning disable IL3050
|
||||
WebApplicationBuilder webApplicationBuilder = WebApplication.CreateBuilder(args);
|
||||
#pragma warning restore IL3050
|
||||
_ = webApplicationBuilder.Configuration.AddUserSecrets<Program>();
|
||||
AppSettings appSettings = AppSettings.Get(webApplicationBuilder.Configuration);
|
||||
try {
|
||||
#pragma warning disable IL2026
|
||||
List<string> collection =
|
||||
[
|
||||
$"BuildNumber:{webApplicationBuilder.Configuration.GetValue<string>("BuildNumber")};",
|
||||
$"GitCommit:{webApplicationBuilder.Configuration.GetValue<string>("GitCommit")};"
|
||||
];
|
||||
#pragma warning restore IL2026
|
||||
_ = webApplicationBuilder.Services.AddHttpClient();
|
||||
_ = webApplicationBuilder.Services.AddHostedService<Worker>();
|
||||
_ = webApplicationBuilder.Services.AddSingleton(collection);
|
||||
_ = webApplicationBuilder.Services.AddSingleton(appSettings);
|
||||
if (WindowsServiceHelpers.IsWindowsService()) {
|
||||
collection.Add(nameof(WindowsServiceLifetime));
|
||||
_ = webApplicationBuilder.Services.AddSingleton<IHostLifetime, WindowsServiceLifetime>();
|
||||
_ = webApplicationBuilder.Logging.AddEventLog(settings => {
|
||||
#pragma warning disable CA1416
|
||||
if (string.IsNullOrEmpty(settings.SourceName))
|
||||
settings.SourceName = webApplicationBuilder.Environment.ApplicationName;
|
||||
#pragma warning restore
|
||||
});
|
||||
}
|
||||
using WebApplication webApplication = webApplicationBuilder.Build();
|
||||
logger = webApplication.Services.GetRequiredService<ILogger<Program>>();
|
||||
if (string.IsNullOrEmpty(appSettings.GatusToMonaConfiguration.Company)) {
|
||||
Environment.ExitCode = -1;
|
||||
_ = webApplication.StopAsync();
|
||||
}
|
||||
logger.LogInformation("Starting Web Application");
|
||||
logger.LogCritical("{Company}", appSettings.GatusToMonaConfiguration.Company);
|
||||
await webApplication.RunAsync();
|
||||
} catch (Exception ex) {
|
||||
try { logger?.LogCritical(ex, "WebApplication terminated unexpectedly"); } catch (Exception) { }
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user