Sakuno.KanColle.Amatsukaze.Game.Services.Records.BattleDetailRecords.UpgradeFromOldVersionPreprocessStep C# (CSharp) Method

UpgradeFromOldVersionPreprocessStep() protected method

protected UpgradeFromOldVersionPreprocessStep ( int rpOldVersion ) : void
rpOldVersion int
return void
        protected override void UpgradeFromOldVersionPreprocessStep(int rpOldVersion)
        {
            if (rpOldVersion == 1)
            {
                using (var rCommand = r_Connection.CreateCommand())
                {
                    rCommand.CommandText =
                        "ALTER TABLE participant RENAME TO participant_old;" +

                        "CREATE TABLE IF NOT EXISTS participant(battle INTEGER NOT NULL REFERENCES battle(id), id INTEGER NOT NULL, ship INTEGER NOT NULL, level INTEGER NOT NULL, condition INTEGER NOT NULL, fuel INTEGER NOT NULL, bullet INTEGER NOT NULL, firepower INTEGER NOT NULL, torpedo INTEGER NOT NULL, aa INTEGER NOT NULL, armor INTEGER NOT NULL, evasion INTEGER NOT NULL, asw INTEGER NOT NULL, los INTEGER NOT NULL, luck INTEGER NOT NULL, range INTEGER NOT NULL, PRIMARY KEY(battle, id)) WITHOUT ROWID;" +

                        "INSERT INTO participant(battle, id, ship, level, condition, fuel, bullet, firepower, torpedo, aa, armor, evasion, asw, los, luck, range) SELECT battle, id, ship, level, condition, -1 AS fuel, -1 AS bullet, firepower, torpedo, aa, armor, evasion, asw, los, luck, range FROM participant_old;" +

                        "DROP TABLE participant_old;";

                    rCommand.ExecuteNonQuery();
                }
            }
            if (rpOldVersion < 4)
            {
                using (var rCommand = r_Connection.CreateCommand())
                {
                    var rEquipmentIDs = string.Join(", ", KanColleGame.Current.MasterInfo.Equipment.Values.Where(r => r.IsPlane).Select(r => r.ID));
                    rCommand.CommandText = $"UPDATE participant_slot SET level = level << 4 WHERE equipment IN ({rEquipmentIDs}) AND level < 10;";
                    rCommand.ExecuteNonQuery();
                }
            }
        }