protected void Page_LoadComplete(object sender, EventArgs e) { if (Session["UserBasicStatsPlayer"] == null) { if (Request.QueryString["userId"] != null && Request.QueryString["userId"] != "") { int.TryParse(Request.QueryString["userId"], out selectedUserId); } } else { selectedUserId = ((Player)Session["UserBasicStatsPlayer"]).Id; } List <AchievementsWithPlayers> awpList = new List <AchievementsWithPlayers>(); if (Cache[DataAccess.AllAchievementsCacheName] == null) { using (TrambambuleDBContextDataContext context = new TrambambuleDBContextDataContext()) { var achievements = context.Achievements.ToList(); foreach (Achievement achievement in achievements) { var players = (from ap in context.AchievementPlayer join p in context.Players on ap.PlayerId equals p.Id where ap.AchievementId == achievement.Id && ap.LevelOfAchievement > 0 select new PlayerWithLevelOfAchievement(p, ap.LevelOfAchievement, ap.ToNextLevelLabel)).ToList(); AchievementsWithPlayers awp = new AchievementsWithPlayers(achievement, players); awpList.Add(awp); } } Cache.Insert(DataAccess.AllAchievementsCacheName, awpList, null, DateTime.Now.AddSeconds(DataAccess.CacheTimeInSeconds), TimeSpan.Zero); } else { awpList = (List <AchievementsWithPlayers>)HttpContext.Current.Cache[DataAccess.AllAchievementsCacheName]; } if (awpList.Count > 0) { repAchievements.DataSource = awpList; repAchievements.DataBind(); } }
protected void repAchievements_ItemBound(object sender, RepeaterItemEventArgs args) { var item = args.Item; if (item != null) { if (item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item) { AchievementsWithPlayers awp = (AchievementsWithPlayers)item.DataItem; if (awp.Players != null && awp.Players.Count > 0) { currentAchievement = awp.Achievement; PlaceHolder phNoResult = (PlaceHolder)item.FindControl("phNoResults"); if (phNoResult != null) { phNoResult.Visible = false; } Repeater repPlayers = (Repeater)item.FindControl("repPlayers"); if (repPlayers != null) { repPlayers.DataSource = awp.Players; repPlayers.DataBind(); } } else { PlaceHolder phPlayers = (PlaceHolder)item.FindControl("phPlayers"); if (phPlayers != null) { phPlayers.Visible = false; } } } } }