protected void Page_Load(object sender, EventArgs e) { try { bool achievementsExists = true; using (TrambambuleDBContextDataContext context = new TrambambuleDBContextDataContext()) { achievementsExists = context.AchievementPlayer.Any(); } if (!achievementsExists) { List<AchievementTextWithIds> achievementsData = new AchievementsService(DataAccess.GetPlayers().ToList()).RecalculateAchievements(true); litStatus.Text = "Osiągnięcia zostały przyznane"; //List<AchievementsWithPlayers> awpList = new List<AchievementsWithPlayers>(); //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 // select new PlayerWithLevelOfAchievement(p, ap.LevelOfAchievement, ap.ToNextLevelLabel)).ToList(); // AchievementsWithPlayers awp = new AchievementsWithPlayers(achievement, players); // awpList.Add(awp); // } //} Cache.Remove(DataAccess.PlayersListCacheName); Cache.Remove(DataAccess.PlayersNamesAndSurnamesWithoutPolishCharsCacheName); Cache.Remove(DataAccess.PlayersAchievementsCacheName); Cache.Remove(DataAccess.AllAchievementsCacheName); Cache.Remove(DataAccess.OverallStatsCacheName); } } catch (Exception ex) { litStatus.Text = ex.Message + " " + ex.StackTrace; } }
private void CalculateAchievements(List<Player> playersInThisGame) { List<AchievementTextWithIds> achievementsData = new AchievementsService(playersInThisGame).RecalculateAchievements(false); if (achievementsData.Count > 0) { Cache.Remove(DataAccess.PlayersAchievementsCacheName); Cache.Remove(DataAccess.AllAchievementsCacheName); StringBuilder sb = new StringBuilder("<br/><br/><b>Zdobyte osiągnięcia:</b><br/><ul class=\"grantedAchievements\">"); achievementsData.ForEach(w => sb.Append("<li>" + w.Text + "</li>")); sb.Append("</ul>"); litAchievements.Text = sb.ToString(); } }