public void Start() { if (_started) { return; } _msn = new Msn(MsnGetters); #region First run if (Settings.Get <bool>(_names.FirstRun)) { var firstRunModule = new FirstRun(delegate() { var module = new OsuPathResolver(); if (AddModule(module)) { StartModule(module); } }); AddModule(firstRunModule); StartModule(firstRunModule); if (!firstRunModule.CompletedSuccesfully) { Program.SafeQuit(); } } MsnGetters.Clear(); #endregion var mapStringFormatter = new MapStringFormatter(new MainMapDataGetter(_mapDataFinders, _mapDataGetters, _mapDataParsers, _mapDataReplacementSetters, _saver, _logger)); StartModule(mapStringFormatter); _logger.Log("Starting...", LogLevel.Advanced); _logger.Log(">Main classes...", LogLevel.Advanced); _sqliteControler = new SqliteControler(new SqliteConnector()); _logger.Log(">Modules...", LogLevel.Advanced); StartModules(); _logger.Log(">loaded {0} modules, where {1} are providing settings", LogLevel.Basic, _modules.Count.ToString(), SettingsList.Count.ToString()); #region plugins //TODO: plugin loading #endregion plugins Settings.Add(_names.FirstRun.Name, false); _started = true; _logger.Log("Started!", LogLevel.Basic); }
public void Start() { if (_started) { return; } _msn = new Msn(MsnGetters); #region First run bool shouldForceFirstRun = false; var lastVersionStr = Settings.Get <string>(_names.LastRunVersion); if (lastVersionStr == _names.LastRunVersion.Default <string>()) { shouldForceFirstRun = true; } else { try { var lastVersion = Helpers.Helpers.GetDateFromVersionString(lastVersionStr); var versionToResetOn = Helpers.Helpers.GetDateFromVersionString("v161030.20"); shouldForceFirstRun = lastVersion < versionToResetOn; } catch (Exception e) { if (e is FormatException || e is ArgumentNullException) { shouldForceFirstRun = true; } else { throw; } } } if (Settings.Get <bool>(_names.FirstRun) || shouldForceFirstRun) { var firstRunModule = new FirstRun(delegate() { var module = new OsuPathResolver(); if (AddModule(module)) { StartModule(module); } }); AddModule(firstRunModule); StartModule(firstRunModule); if (!firstRunModule.CompletedSuccesfully) { Program.SafeQuit(); } } MsnGetters.Clear(); #endregion var mapStringFormatter = new MapStringFormatter(new MainMapDataGetter(_mapDataFinders, _mapDataGetters, _mapDataParsers, _mapDataReplacementSetters, _saver, _logger, Settings)); AddModule(mapStringFormatter); _logger.Log("Starting...", LogLevel.Advanced); _logger.Log(">Main classes...", LogLevel.Advanced); _sqliteControler = new SqliteControler(new SqliteConnector()); _logger.Log(">Modules...", LogLevel.Advanced); StartModules(); _logger.Log(">loaded {0} modules, where {1} are providing settings", LogLevel.Basic, _modules.Count.ToString(), SettingsList.Count.ToString()); #region plugins //TODO: plugin loading #endregion plugins Settings.Add(_names.FirstRun.Name, false); Settings.Add(_names.LastRunVersion.Name, Program.ScVersion); _started = true; _logger.Log("Started!", LogLevel.Basic); }