Exemple #1
0
        public ActionResult _EditUserRank(int rank = -1, bool isEdit = false)
        {
            UserRank          userRank          = userRankService.Get(rank);
            UserRankEditModel userRankEditModel = new UserRankEditModel();

            if (userRank != null)
            {
                userRankEditModel = userRank.AsEditModel();
            }
            userRankEditModel.IsEdit = isEdit;
            return(View(userRankEditModel));
        }
Exemple #2
0
        public ActionResult MyRank(string spaceKey)
        {
            IUser         user          = userService.GetUser(spaceKey);
            PointSettings pointSettings = pointSettingsManger.Get();

            pageResourceManager.InsertTitlePart("我的等级");

            int totalPoints = pointSettings.CalculateIntegratedPoint(user.ExperiencePoints, user.ReputationPoints);

            SortedList <int, UserRank> userRanks = userRankService.GetAll();
            UserRank userRank = userRankService.Get(user.Rank);

            if (userRank != null)
            {
                ViewData["userRankName"] = userRank.RankName;
            }


            ViewData["userRanks"]   = userRanks;
            ViewData["totalPoints"] = totalPoints;
            if (user.Rank + 1 <= userRankService.GetAll().Count())
            {
                ViewData["nextRankName"] = userRankService.Get(user.Rank + 1).RankName;
                ViewData["leftUpgradeExperiencePoints"] = userRankService.Get(user.Rank + 1).PointLower - totalPoints;
            }
            else
            {
                ViewData["leftUpgradeExperiencePoints"] = 0;
            }

            #region 计算进度条百分比

            List <UserRank> ranks      = userRanks.Values.ToList();
            int             a          = (userRanks.Count() - 2) / 3;
            int             rank       = user.Rank;
            double          leftPoints = 0;

            if (rank >= 1 && rank < ranks.ElementAt(a).Rank)
            {
                leftPoints = totalPoints / (double)ranks.ElementAt(a).PointLower / 5;
            }
            else if (rank >= ranks.ElementAt(a).Rank&& rank < ranks.ElementAt(2 * a).Rank)
            {
                leftPoints = (totalPoints - ranks.ElementAt(a).PointLower) / (double)(ranks.ElementAt(2 * a).PointLower - ranks.ElementAt(a).PointLower) / 5 + 0.2;
            }

            else if (rank >= ranks.ElementAt(2 * a).Rank&& rank < ranks.ElementAt(3 * a).Rank)
            {
                leftPoints = (totalPoints - ranks.ElementAt(2 * a).PointLower) / (double)(ranks.ElementAt(3 * a).PointLower - ranks.ElementAt(2 * a).PointLower) / 5 + 0.4;
            }

            else if (rank >= ranks.ElementAt(3 * a).Rank&& rank < userRanks.ToArray()[userRanks.Count() - 1].Value.Rank)
            {
                leftPoints = (totalPoints - ranks.ElementAt(3 * a).PointLower) / (double)(userRanks.ToArray()[userRanks.Count() - 1].Value.PointLower - ranks.ElementAt(3 * a).PointLower) / 5 + 0.6;
            }
            else
            {
                leftPoints = totalPoints / double.MaxValue + 0.8;
            }
            ViewData["leftPoints"] = leftPoints;
            #endregion


            return(View(user));
        }