public override void HandleRequest()
{
// Setup Params
if (Request.QueryString.ContainsKey("pid"))
Int32.TryParse(Request.QueryString["pid"], out Pid);
if (Request.QueryString.ContainsKey("transpose"))
Int32.TryParse(Request.QueryString["transpose"], out Transpose);
if (Request.QueryString.ContainsKey("info"))
Info = Request.QueryString["info"].Split(',').ToList<string>();
// Make sure our required params are indeed passed
if (Pid == 0 || Info.Count == 0)
{
Response.WriteResponseStart(false);
Response.WriteHeaderLine("asof", "err");
Response.WriteDataLine(DateTime.UtcNow.ToUnixTimestamp(), "Invalid Syntax!");
Response.Send();
return;
}
// NOTE: The HttpServer will handle the DbConnectException
using (Database = new StatsDatabase())
{
// Get Missing keys for a standard request
List<string> MissingKeys = RequiredKeys.Split(',').Except(Info).ToList();
// Standard BF2HQ Request
if (MissingKeys.Count == 0)
DoFullRequest();
// Time Info
else if (Request.QueryString["info"] == "ktm-,vtm-,wtm-,mtm-")
DoTimeRequest();
// Map Info
else if (Request.QueryString["info"].StartsWith("mtm-,mwn-,mls-"))
DoMapRequest();
else if (Request.QueryString["info"].StartsWith("rank") && Request.QueryString["info"].EndsWith("vac-"))
DoServerRequest();
else
Response.Send();
}
}