Exemplo n.º 1
0
        private static async Task _initializeAsync()
        {
            if (_initialized)
            {
                return;
            }

            _initialized = true;

            // Backup the database before performing any operations on it.
            _backupDatabase();

            using (SQLiteConnection conn = await GetConnectionAsync()) {
                await conn.OpenAsync();

                // Load database updater config.

                string config_fname          = System.IO.Path.Combine(Global.DatabaseUpdatesDirectory, "config.json");
                DatabaseUpdaterConfig config = new DatabaseUpdaterConfig();

                if (System.IO.File.Exists(config_fname))
                {
                    config = JsonConvert.DeserializeObject <DatabaseUpdaterConfig>(System.IO.File.ReadAllText(config_fname));
                }
                else if (Bot.OurFoodChainBot.Instance != null)
                {
                    await Bot.OurFoodChainBot.Instance.LogAsync(Discord.LogSeverity.Warning, "Database", "Database updates config not found");
                }

                config.UpdatesDirectory = Global.DatabaseUpdatesDirectory;

                await new DatabaseUpdater(conn, config).UpdateToLatestVersionAsync();

                conn.Close();
            }
        }
 public DatabaseUpdater(SQLiteConnection conn, DatabaseUpdaterConfig config)
 {
     Connection = conn;
     Config     = config;
 }