void ProcessPracticeFirstStage(ApiInfo rpInfo)
{
var rParticipantFleet = KanColleGame.Current.Port.Fleets[int.Parse(rpInfo.Parameters["api_deck_id"])];
var rPractice = KanColleGame.Current.Practice;
var rOpponent = rPractice.Opponent;
r_CurrentBattleID = rPractice.Battle.ID;
using (var rTransaction = Connection.BeginTransaction())
using (var rCommand = Connection.CreateCommand())
{
var rCommandTextBuilder = new StringBuilder(1024);
rCommandTextBuilder.Append("INSERT OR IGNORE INTO practice_opponent(id, name) VALUES(@opponent_id, @opponent_name);" +
"INSERT OR IGNORE INTO practice_opponent_comment(id, comment) VALUES(@opponent_comment_id, @opponent_coment);" +
"INSERT OR IGNORE INTO practice_opponent_fleet(id, name) VALUES(@opponent_fleet_name_id, @opponent_fleet_name);" +
"INSERT INTO practice(id, opponent, opponent_level, opponent_experience, opponent_rank, opponent_comment, opponent_fleet) VALUES(@battle_id, @opponent_id, @opponent_level, @opponent_experience, @opponent_rank, @opponent_comment_id, @opponent_fleet_name_id);" +
"INSERT INTO battle_detail.battle(id, first) VALUES(@battle_id, @first);");
rCommand.Parameters.AddWithValue("@opponent_id", rOpponent.RawData.ID);
rCommand.Parameters.AddWithValue("@opponent_name", rOpponent.Name);
rCommand.Parameters.AddWithValue("@opponent_comment_id", rOpponent.RawData.CommentID ?? -1);
rCommand.Parameters.AddWithValue("@opponent_coment", rOpponent.Comment);
rCommand.Parameters.AddWithValue("@opponent_fleet_name_id", rOpponent.RawData.FleetNameID ?? -1);
rCommand.Parameters.AddWithValue("@opponent_fleet_name", rOpponent.FleetName);
rCommand.Parameters.AddWithValue("@opponent_level", rOpponent.Level);
rCommand.Parameters.AddWithValue("@opponent_experience", rOpponent.RawData.Experience[0]);
rCommand.Parameters.AddWithValue("@opponent_rank", (int)rOpponent.Rank);
rCommand.Parameters.AddWithValue("@battle_id", r_CurrentBattleID.Value);
rCommand.Parameters.AddWithValue("@first", CompressJson(rpInfo.Json["api_data"]));
ProcessParticipantFleet(rCommandTextBuilder, rParticipantFleet, ParticipantFleetType.Main);
rCommand.CommandText = rCommandTextBuilder.ToString();
rCommand.ExecuteNonQuery();
rTransaction.Commit();
}
}
void ProcessSecondStage(ApiInfo rpInfo)