protected override void Render(HtmlTextWriter writer) { using (DataAccess.CSSStatsDataContext db = new Allegiance.CommunitySecuritySystem.DataAccess.CSSStatsDataContext()) { var sortedLeaderboard = db.StatsLeaderboards.Where(p => p.DateModified > DateTime.Now.AddDays(-1 * Common.Constants.Leaderboard.MaxLastActiveDays)).OrderBy(p => p.Rank).ToList().Select((p, index) => new { Order = index, Place = index, Callsign = p.LoginUsername } ); writer.Write("{ total: \"1\", page: \"0\", records: \"" + sortedLeaderboard.Count() + "\", rows : ["); bool firstRow = true; foreach (var row in sortedLeaderboard) { if (firstRow == true) { firstRow = false; } else { writer.Write(","); } writer.Write("{id:\"" + row.Order + "\", cell:[\"" + row.Order + "\",\"" + row.Place + "\",\"" + row.Callsign + "\"]}"); } writer.Write("]}"); } }
protected override void Render(HtmlTextWriter writer) { using (DataAccess.CSSStatsDataContext db = new Allegiance.CommunitySecuritySystem.DataAccess.CSSStatsDataContext()) { var sortedLeaderboard = db.StatsLeaderboards.Where(p => p.DateModified > DateTime.Now.AddDays(-1 * Common.Constants.Leaderboard.MaxLastActiveDays)).OrderBy(p => p.Rank).ToList().Select((p, index) => new { Order = index, Place = index, Callsign = p.LoginUsername } ); writer.Write("{ total: \"1\", page: \"0\", records: \"" + sortedLeaderboard.Count() + "\", rows : ["); bool firstRow = true; foreach (var row in sortedLeaderboard) { if(firstRow == true) firstRow = false; else writer.Write(","); writer.Write("{id:\"" + row.Order + "\", cell:[\"" + row.Order + "\",\"" + row.Place + "\",\"" + row.Callsign + "\"]}"); } writer.Write("]}"); } }
public List <DataAccess.StatsLeaderboard> GetCurrentLeaderboard(string token) { ValidateToken(token); string cacheKey = "Stats::GetCurrentLeaderboard?token={token}"; List <DataAccess.StatsLeaderboard> returnValue = (List <DataAccess.StatsLeaderboard>)HttpRuntime.Cache.Get(cacheKey); if (returnValue == null) { using (DataAccess.CSSStatsDataContext statsDB = new Allegiance.CommunitySecuritySystem.DataAccess.CSSStatsDataContext()) { returnValue = DataAccess.StatsLeaderboard.GetSortedLeaderboard(statsDB); HttpRuntime.Cache.Add(cacheKey, returnValue, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 30), CacheItemPriority.Normal, null); } } return(returnValue); }
private void BindData() { using (DataAccess.CSSStatsDataContext statsDB = new Allegiance.CommunitySecuritySystem.DataAccess.CSSStatsDataContext()) { //var sortedLeaderboard = statsDB.StatsLeaderboards // .Where(p => p.DateModified > DateTime.Now.AddDays(Common.Constants.Leaderboard.MaxLastActiveDays)) // .OrderByDescending(p => p.Rank) // .ToList() // .Select((p, index) => new // { // Order = index + 1, // Place = index + 1, // Callsign = p.LoginUsername, // Mu = p.Mu.ToString("F2"), // Sigma = p.Sigma.ToString("F2"), // Rank = p.Rank.ToString("F1"), // Wins = p.Wins, // Losses = p.Losses, // Draws = p.Draws, // Defects = p.Defects, // StackRating = p.StackRating.ToString("F2"), // CommandMu = p.CommandMu.ToString("F2"), // CommandSigma = p.CommandSigma.ToString("F2"), // CommandRank = p.CommandRank.ToString("F1"), // CommandWins = p.CommandWins, // CommandLosses = p.CommandLosses, // CommandDraws = p.CommandDraws, // Kills = p.Kills, // Ejects = p.Ejects, // DroneKills = p.DroneKills, // StationKills = p.StationKills, // StationCaptures = p.StationCaptures, // KillsEjectsRatio = p.Kills > 0 && p.Ejects > 0 ? Math.Round((Double)p.Kills / p.Ejects, 2) : p.Kills > 0 ? 1 : 0, // HoursPlayed = Math.Round(p.HoursPlayed, 2), // KillsPerHour = p.HoursPlayed == 0 ? 0 : Math.Round((Double)p.Kills / p.HoursPlayed, 2) // }); gvLeaderboard.DataSource = DataAccess.StatsLeaderboard.GetSortedLeaderboard(statsDB); gvLeaderboard.DataBind(); } }
public List<DataAccess.StatsLeaderboard> GetCurrentLeaderboard(string token) { ValidateToken(token); string cacheKey = "Stats::GetCurrentLeaderboard?token={token}"; List<DataAccess.StatsLeaderboard> returnValue = (List<DataAccess.StatsLeaderboard>)HttpRuntime.Cache.Get(cacheKey); if (returnValue == null) { using (DataAccess.CSSStatsDataContext statsDB = new Allegiance.CommunitySecuritySystem.DataAccess.CSSStatsDataContext()) { returnValue = DataAccess.StatsLeaderboard.GetSortedLeaderboard(statsDB); HttpRuntime.Cache.Add(cacheKey, returnValue, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 30), CacheItemPriority.Normal, null); } } return returnValue; }