public override void HandleRequest()
{
int Pid;
// make sure we have a valid player ID
if (!Request.QueryString.ContainsKey("pid") || !Int32.TryParse(Request.QueryString["pid"], out Pid))
{
Response.WriteResponseStart(false);
Response.WriteHeaderLine("asof", "err");
Response.WriteDataLine(DateTime.UtcNow.ToUnixTimestamp(), "Invalid Syntax!");
Response.Send();
return;
}
// Output header data
Response.WriteResponseStart();
Response.WriteHeaderLine("pid", "asof");
Response.WriteDataLine(Pid, DateTime.UtcNow.ToUnixTimestamp());
Response.WriteHeaderLine("award", "level", "when", "first");
// Fetch Player Awards
// NOTE: The HttpServer will handle the DbConnectException
using (Database = new StatsDatabase())
{
List<Dictionary<string, object>> Awards = Database.GetPlayerAwards(Pid);
// Write each award as a new data line
foreach (Dictionary<string, object> Award in Awards)
Response.WriteDataLine(Award["awd"], Award["level"], Award["earned"], Award["first"]);
// Send Response
Response.Send();
}
}