Пример #1
0
        public static List <PlayersAchievements> GetPlayersWithAchievements()
        {
            List <PlayersAchievements> players = new List <PlayersAchievements>();

            if (HttpContext.Current.Cache[DataAccess.PlayersAchievementsCacheName] == null)
            {
                using (TrambambuleDBContextDataContext context = new TrambambuleDBContextDataContext())
                {
                    foreach (Player p in DataAccess.GetPlayers())
                    {
                        var achievements = (from ac in context.AchievementPlayer
                                            join a in context.Achievements
                                            on ac.AchievementId equals a.Id
                                            where ac.PlayerId == p.Id && ac.LevelOfAchievement >= 1

                                            select new AchievementWithCurrentLevel(a, ac.LevelOfAchievement)).ToList();

                        PlayersAchievements pa = new PlayersAchievements(p, achievements);
                        players.Add(pa);
                    }
                }

                HttpContext.Current.Cache.Insert(DataAccess.PlayersAchievementsCacheName, players, null, DateTime.Now.AddSeconds(DataAccess.CacheTimeInSeconds), TimeSpan.Zero);
            }
            else
            {
                players = (List <PlayersAchievements>)HttpContext.Current.Cache[DataAccess.PlayersAchievementsCacheName];
            }

            return(players);
        }
Пример #2
0
        protected void gvPlayerResults_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            e.Row.Cells[0].Visible = false;
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Player p = DataAccess.GetPlayer(Server.HtmlDecode(e.Row.Cells[2].Text));
                if (p != null)
                {
                    e.Row.Cells[2].Text = Server.HtmlDecode(PlayerHelper.GetPlayerNameLink(p));
                }

                if (playersAchievements == null)
                {
                    playersAchievements = DataAccess.GetPlayersWithAchievements();
                }

                PlayersAchievements pa = playersAchievements.FirstOrDefault(w => w.Player.Id == p.Id);
                if (pa != null)
                {
                    List <AchievementWithCurrentLevel> achievements = pa.Achievements;
                    if (achievements.Any())
                    {
                        StringBuilder sb = new StringBuilder("<div class=\"achievementsIcons\">");
                        for (int i = 0; i < pa.Achievements.Count; i++)
                        {
                            if (i > 0 && i % 4 == 0)
                            {
                                sb.Append("</div><div class=\"achievementsIcons\">");
                            }
                            AchievementWithCurrentLevel awcl = pa.Achievements[i];
                            string src   = "";
                            string label = "Poziom {0}: {1}";
                            switch (awcl.Level)
                            {
                            case 1:
                                src   = awcl.Achievement.Level1Icon;
                                label = string.Format(label, Common.GetAchievementsLevelName(1), awcl.Achievement.Level1Label);
                                break;

                            case 2:
                                src   = awcl.Achievement.Level2Icon;
                                label = string.Format(label, Common.GetAchievementsLevelName(2), awcl.Achievement.Level2Label);
                                break;

                            case 3:
                                src   = awcl.Achievement.Level3Icon;
                                label = string.Format(label, Common.GetAchievementsLevelName(3), awcl.Achievement.Level3Label);
                                break;
                            }
                            sb.AppendFormat("<img src=\"{0}\" alt=\"{1}\" title=\"{1}\" height=\"19px\" width=\"19px\" />", src, label);
                        }

                        if (!sb.ToString().EndsWith("</div>"))
                        {
                            sb.Append("</div>");
                        }

                        e.Row.Cells[9].Text = sb.ToString();
                    }
                    else
                    {
                        e.Row.Cells[9].Text = "Brak";
                    }
                }
                else
                {
                    e.Row.Cells[9].Text = "Brak";
                }

                if (Session["UserBasicStatsPlayer"] != null)
                {
                    Player player = (Player)Session["UserBasicStatsPlayer"];
                    if (e.Row.Cells[0].Text == player.Id.ToString())
                    {
                        e.Row.Font.Bold = true;
                    }
                }

                int balance = -1;

                if (int.TryParse(e.Row.Cells[6].Text, out balance))
                {
                    if (balance > 0)
                    {
                        e.Row.Cells[6].Text = "+" + balance.ToString();
                    }
                }


                int pointsChange = -1;

                if (int.TryParse(e.Row.Cells[8].Text, out pointsChange))
                {
                    if (pointsChange > 0)
                    {
                        e.Row.Cells[8].Text = "+" + pointsChange.ToString();
                    }
                }
            }
        }