Example #1
0
        /// <summary>
        /// 绑定数据
        /// </summary>
        protected void BindRankData()
        {
            RankCache cache = Fetch.GetRankList(1);

            if (cache != null)
            {
                rptRank.DataSource = cache.CacheList;
                rptRank.DataBind();
            }
        }
Example #2
0
        /// <summary>
        /// 获取排行榜信息
        /// </summary>
        /// <param name="typeID">0 魅力排行榜  1 等级排行榜  2 游戏币排行榜</param>
        /// <returns></returns>
        public static RankCache GetRankList(int typeID)
        {
            //固定变量
            string path     = "/Cache/" + (typeID == 0 ? "LoveLinessRank.json" : typeID == 1 ? "ExperienceRank.json" : "GoldRank.json");
            string key      = typeID == 0 ? "LoveLinessRankCacheKey" : typeID == 1 ? "ExperienceRankCacheKey" : "GoldRankCacheKey";
            int    timeout  = 60;
            string fullPath = TextUtility.GetFullPath(path);

            JavaScriptSerializer js    = new JavaScriptSerializer();
            RankCache            cache = WHCache.Default.Get <AspNetCache>(key) as RankCache;

            //缓存查询
            if (cache != null && cache.CacheTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd"))
            {
                return(cache);
            }

            //本地查询
            if (cache == null || cache.CacheTime.ToString("yyyyMMdd") != DateTime.Now.ToString("yyyyMMdd"))
            {
                if (File.Exists(fullPath))
                {
                    string    strData = File.ReadAllText(fullPath);
                    RankCache local   = js.Deserialize <RankCache>(strData);
                    if (local != null && local.CacheTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd"))
                    {
                        local.CacheTime = DateTime.Now;
                        WHCache.Default.Save <AspNetCache>(key, local, timeout);
                        return(local);
                    }
                }
            }

            //数据库查询
            IList <RankInfo> rankList = FacadeManage.aideAccountsFacade.GetDataRanking(typeID);

            cache           = new RankCache();
            cache.CacheTime = DateTime.Now;
            cache.CacheList = rankList;

            WHCache.Default.Save <AspNetCache>(key, cache, timeout);
            System.IO.File.WriteAllText(fullPath, js.Serialize(cache));

            return(cache);
        }
        protected override IEnumerable <ScoreboardSortModel> GetEnumerable()
        {
            cats2 = Categories.ToDictionary(t => t.CategoryId);

            var rt = RankCache
                     .Where(a => cats2.ContainsKey(a.Team.CategoryId))
                     .GroupBy(a => cats2[a.Team.CategoryId].SortOrder)
                     .OrderBy(g => g.Key);

            foreach (var g in rt)
            {
                var prob = new ScoreboardProblemStatisticsModel[Problems.Length];
                for (int i = 0; i < Problems.Length; i++)
                {
                    prob[i] = new ScoreboardProblemStatisticsModel();
                }
                yield return(new ScoreboardSortModel(GetViewModel(IsPublic, g, prob), prob));
            }
        }
Example #4
0
        /// <summary>
        /// 绑定财富排行
        /// </summary>
        private void BindScoreRank()
        {
            StringBuilder builderTopView   = new StringBuilder();
            StringBuilder builderOtherView = new StringBuilder();

            RankCache cache = Fetch.GetRankList(2);

            if (cache != null && cache.CacheList != null)
            {
                List <RankInfo> list = cache.CacheList.ToList <RankInfo>();
                if (list.Count > 10)
                {
                    list.RemoveRange(10, (list.Count - 10));
                }

                for (int i = 0; i < list.Count; i++)
                {
                    RankInfo info = list[i];

                    if (i < 3)
                    {
                        //前三
                        builderTopView.AppendFormat("<li><p class=\"ui-rank-face\"><img src=\"{0}\"><i class=\"ui-rank-{1}\"></i></p><p>{2}</p><span>{3}</span></li>", FacadeManage.aideAccountsFacade.GetUserFaceUrl(info.UserID), i + 1, TextUtility.CutLeft(info.NickName, 5), GetChinaString(info.RankValue));
                    }
                    else
                    {
                        //其他
                        builderOtherView.AppendFormat("<li class=\"fn-clear\"><span>{2}</span><strong>{0}</strong><p>{1}</p></li>", i + 1, TextUtility.CutLeft(info.NickName, 16), info.RankValue.ToString());
                    }
                }
                litRank.Text = "<ul class=\"ui-rank-topthree fn-clear\">" + builderTopView.ToString() + "</ul>" + "<ul class=\"ui-rank-list\">" + builderOtherView.ToString() + "</ul>";
            }
            else
            {
                litRank.Text = "";
            }
        }