Import from internal git
This commit is contained in:
72
WebServer/Program.cs
Normal file
72
WebServer/Program.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using CommandLine;
|
||||
using Core.Dto;
|
||||
using Core.Interfaces;
|
||||
using Generator;
|
||||
using Generator.DataSource;
|
||||
using WebServer.Components;
|
||||
|
||||
namespace WebServer;
|
||||
|
||||
public class Program
|
||||
{
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
var parserResult = LoadArguments(args);
|
||||
var parsedArgs = parserResult.Value;
|
||||
|
||||
if (parsedArgs.Gui)
|
||||
{
|
||||
RunWebServer(parsedArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
await RunConsole(parsedArgs);
|
||||
}
|
||||
}
|
||||
|
||||
private static void RunWebServer(ArgumentsDto parsedArgs)
|
||||
{
|
||||
var hostBuilder = WebApplication.CreateBuilder();
|
||||
hostBuilder.Services.AddRazorComponents().AddInteractiveServerComponents();
|
||||
hostBuilder.Host.ConfigureServices((hostContext, services) =>
|
||||
{
|
||||
IDataSourceLoader loader = new JsonLoader(services, hostContext.Configuration);
|
||||
services.AddServices(loader, parsedArgs);
|
||||
});
|
||||
|
||||
hostBuilder.WebHost.UseUrls("http://localhost:1831/");
|
||||
hostBuilder.WebHost.UseStaticWebAssets();
|
||||
|
||||
var app = hostBuilder.Build();
|
||||
|
||||
if (!app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseExceptionHandler("/Error", createScopeForErrors: true);
|
||||
app.UseHsts();
|
||||
}
|
||||
|
||||
app.UseHttpsRedirection();
|
||||
app.UseStaticFiles();
|
||||
app.UseAntiforgery();
|
||||
|
||||
app.MapRazorComponents<App>()
|
||||
.AddInteractiveServerRenderMode();
|
||||
|
||||
app.Run();
|
||||
}
|
||||
|
||||
private static async Task RunConsole(ArgumentsDto parsedArgs)
|
||||
{
|
||||
var hostBuilder = Host.CreateDefaultBuilder();
|
||||
hostBuilder.ConfigureServices((hostContext, services) =>
|
||||
{
|
||||
IDataSourceLoader loader = new JsonLoader(services, hostContext.Configuration);
|
||||
services.AddServices(loader, parsedArgs);
|
||||
services.AddHostedService<GeneratorHostedService>();
|
||||
});
|
||||
await hostBuilder.Build().RunAsync();
|
||||
}
|
||||
|
||||
private static ParserResult<ArgumentsDto> LoadArguments(string[] args) => Parser.Default.ParseArguments<ArgumentsDto>(args);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user