/// <summary> /// Starts the service. /// </summary> public bool StartService() { #if DEBUG System.Diagnostics.Debugger.Launch(); #endif // load instance configuration AppDirs.Init(Assembly.GetExecutingAssembly()); InstanceConfig instanceConfig = new InstanceConfig(); Locale.SetCultureToEnglish(); if (instanceConfig.Load(InstanceConfig.GetConfigFileName(AppDirs.InstanceDir), out string errMsg)) { Locale.SetCulture(instanceConfig.Culture); AppDirs.UpdateLogDir(instanceConfig.LogDir); } else { Console.WriteLine(errMsg); Locale.SetCultureToDefault(); } // initialize log LogFile logFile = new LogFile(LogFormat.Full, Path.Combine(AppDirs.LogDir, ServerUtils.LogFileName)) { Capacity = int.MaxValue }; log = logFile; log.WriteBreak(); // prepare to start service log.WriteAction(Locale.IsRussian ? "Сервер {0} запущен" : "Server {0} started", EngineUtils.AppVersion); storageWrapper = new StorageWrapper(new StorageContext { App = ServiceApp.Server, AppDirs = AppDirs, Log = log }, instanceConfig); ServerConfig appConfig = new ServerConfig(); if (AppDirs.CheckExistence(out errMsg) && LocalizeApp() && storageWrapper.InitStorage() && appConfig.Load(storageWrapper.Storage, ServerConfig.DefaultFileName, out errMsg)) { // start service logFile.CapacityMB = appConfig.GeneralOptions.MaxLogSize; coreLogic = new CoreLogic(instanceConfig, appConfig, AppDirs, storageWrapper.Storage, log); if (coreLogic.StartProcessing()) { return(true); } } else if (!string.IsNullOrEmpty(errMsg)) { log.WriteError(errMsg); } log.WriteError(CommonPhrases.ExecutionImpossible); return(false); }