using Castle.Core.Logging; using OwnChar.Api; namespace OwnChar.Server; internal class Program { public static void Main(string[] args) { var options = new ServerOptions(args); var appTempFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "OwnChar", "Server"); // Load log Directory.CreateDirectory(appTempFolder); using var fsLog = File.OpenWrite(Path.Combine(appTempFolder, "Log.log")); var log = new StreamLogger("OwnChar Server", fsLog); // Check paramters if (!options.IsValid()) { log.Error("Parameters are invalid or not configured. Can not start server app."); return; } // Create server context var server = new OwnCharApiServer(options.ApiUrl, options.DbServer, options.DbDatabase, options.DbUser, options.DbPassword) { Log = log }; // Start server server.Start(); // Wait for exit Console.WriteLine("Server started. Press any key to stop."); Console.ReadKey(); // Stop server server.Stop(); } }