|
|
|
|
@ -2,7 +2,10 @@ |
|
|
|
|
// Created: 2020-02-07 |
|
|
|
|
// Copyright(c) 2020 SimonG. All Rights Reserved. |
|
|
|
|
|
|
|
|
|
using System; |
|
|
|
|
using System.Threading.Tasks; |
|
|
|
|
using GBase.Logging; |
|
|
|
|
using GBase.Logging.Interfaces; |
|
|
|
|
using GBase.Server.Interfaces; |
|
|
|
|
using Microsoft.AspNetCore; |
|
|
|
|
using Microsoft.AspNetCore.Hosting; |
|
|
|
|
@ -11,13 +14,30 @@ namespace GBase.Server |
|
|
|
|
{ |
|
|
|
|
class Program |
|
|
|
|
{ |
|
|
|
|
static async Task Main(string[] args) //TODO: Add try-catch, initialize logging |
|
|
|
|
static async Task Main(string[] args) |
|
|
|
|
{ |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
ILog log = new Log(); |
|
|
|
|
log.InitializeLog(); |
|
|
|
|
log.AddLogger(new ConsoleLogger()); |
|
|
|
|
|
|
|
|
|
IGBaseServerSettings serverSettings = new GBaseServerSettings(); |
|
|
|
|
await serverSettings.ParseArguments(args); |
|
|
|
|
|
|
|
|
|
log.AddLogger(new FileLogger(serverSettings.LogFilePath, serverSettings.LogFileName)); |
|
|
|
|
|
|
|
|
|
IWebHost host = CreateWebHostBuilder(serverSettings).Build(); |
|
|
|
|
await host.RunAsync(); |
|
|
|
|
|
|
|
|
|
host.Dispose(); //TestMe: Check if this destroys the server while it is running |
|
|
|
|
await log.DisposeAsync(); |
|
|
|
|
} |
|
|
|
|
catch (Exception ex) //TODO: decide what to do in this case |
|
|
|
|
{ |
|
|
|
|
Console.WriteLine(ex); |
|
|
|
|
throw; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static IWebHostBuilder CreateWebHostBuilder(IGBaseServerSettings serverSettings) => |
|
|
|
|
|