private void AddOrUpdateBankChest(BankChestDataKey key, BankChestMetadata bankChest)
{
bool insertRequired;
using (QueryResult reader = this.DbConnection.QueryReader(
"SELECT COUNT(UserId) AS Count FROM Protector_BankChests WHERE UserId = @0 AND ChestIndex = @1;",
key.UserId, key.BankChestIndex
)) {
if (!reader.Read())
throw new InvalidOperationException("Unexpected data were returned.");
insertRequired = (reader.Get<int>("Count") == 0);
}
if (insertRequired) {
this.DbConnection.Query(
"INSERT INTO Protector_BankChests (UserId, ChestIndex, Content) VALUES (@0, @1, @2);",
key.UserId, key.BankChestIndex, this.ItemMetadataToString(bankChest.Items)
);
} else {
this.DbConnection.Query(
"UPDATE Protector_BankChests SET Content = @2 WHERE UserId = @0 AND ChestIndex = @1;",
key.UserId, key.BankChestIndex, this.ItemMetadataToString(bankChest.Items)
);
}
}