protected override void HandleRequest()
{
using (var db = new Database())
{
if (Account == null) BadLogin();
else
{
var cmd = db.CreateQuery();
cmd.CommandText = "SELECT fame FROM stats WHERE accId=@accId;";
cmd.Parameters.AddWithValue("@accId", Account.AccountId);
if ((int)cmd.ExecuteScalar() < 5000) WriteErrorLine("Not enough fame");
else
{
cmd = db.CreateQuery();
cmd.CommandText = "UPDATE stats set fame = MIN(fame - 5000, 0) WHERE accId=@accId;";
cmd.Parameters.AddWithValue("@accId", Account.AccountId);
if (cmd.ExecuteNonQuery() > 0)
{
cmd = db.CreateQuery();
cmd.CommandText = "UPDATE accounts SET maxCharSlot = maxCharSlot + 1 WHERE id=@accId;";
cmd.Parameters.AddWithValue("@accId", Account.AccountId);
if (cmd.ExecuteNonQuery() > 0) Success();
else WriteErrorLine("Internal Error");
}
else WriteErrorLine("Internal Error");
}
}
}
}