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)); }
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)); }