private void ShowHistory()
{
// Check cache
string cacheFile = $"{Pid}_history";
if (!base.CacheFileExpired(cacheFile, 30))
{
base.SendCachedResponse(cacheFile);
return;
}
// Create our Model
PlayerHistoryModel Model = new PlayerHistoryModel(Client);
Model.Player = Rows[0];
Model.SearchBarValue = Pid.ToString();
// load data
Rows = Database.Query("SELECT * FROM player_history WHERE id=@P0 ORDER BY timestamp DESC LIMIT 50", Pid);
Model.History = new List<PlayerHistory>(Rows.Count);
// Create our History objects
foreach (Dictionary<string, object> row in Rows)
{
int timeStamp = Int32.Parse(row["timestamp"].ToString());
// Try and get our Map id from the Round Histroy table since the MapId
// isnt stored in the player histroy table
string mapName = "Unknown Map";
int iMapId = 0;
object mapId = Database.ExecuteScalar("SELECT mapid FROM round_history WHERE timestamp=@P0", timeStamp);
if (mapId != null && Int32.TryParse(mapId.ToString(), out iMapId) && Bf2StatsData.Maps.ContainsKey(iMapId))
{
mapName = Bf2StatsData.Maps[iMapId];
}
// Set history data
Model.History.Add(new PlayerHistory()
{
Date = DateTime.Now.FromUnixTimestamp(timeStamp),
Score = Int32.Parse(row["score"].ToString()),
CmdScore = Int32.Parse(row["cmdscore"].ToString()),
SkillScore = Int32.Parse(row["skillscore"].ToString()),
TeamScore = Int32.Parse(row["teamscore"].ToString()),
TimePlayed = Int32.Parse(row["time"].ToString()),
Kills = Int32.Parse(row["kills"].ToString()),
Deaths = Int32.Parse(row["deaths"].ToString()),
Rank = Int32.Parse(row["rank"].ToString()),
MapName = mapName
});
}
// Send the response
base.SendTemplateResponse("player_history", typeof(PlayerHistoryModel), Model, cacheFile);
}