public RateSettings() { RateSets = new RateSetCollection(); RateSet set = new RateSet(); set.RateItems = new RateSetItemCollection(); RateSetItem item = new RateSetItem(); item.MaxValue = 50; item.MinValue = -50; item.MaxValueInTime = 100; item.PointType = UserPointType.Point1; item.RoleID = Guid.Empty; set.RateItems.Add(item); item = new RateSetItem(); item.MaxValue = 1000; item.MinValue = -1000; item.MaxValueInTime = 100000; item.PointType = UserPointType.Point1; item.RoleID = Role.Owners.RoleID; item.RoleSortOrder = 0; set.RateItems.Add(item); item = new RateSetItem(); item.MaxValue = 1000; item.MinValue = -1000; item.MaxValueInTime = 100000; item.PointType = UserPointType.Point2; item.RoleID = Role.Owners.RoleID; item.RoleSortOrder = 0; set.RateItems.Add(item); RateSets.Add(set); }
protected int GetTodayValue(RateSetItem item) { int value = 0; foreach (PostMark postMark in PostMarks) { value += Math.Abs(postMark.Points[(int)item.PointType]); } int maxValue = 0; foreach (RateSetItem tempSet in TopRateSets) { if (tempSet.PointType == item.PointType) { maxValue = item.MaxValueInTime; break; } } int temp = maxValue - value; if (temp > 0) { return(temp); } else { return(0); } }
private void Delete() { m_Success = false; MessageDisplay msgDisplay = CreateMessageDisplay(); int nodeID = _Request.Get <int>("nodeID", Method.Get, 0); if (CurrentRateSet.NodeID != nodeID) { msgDisplay.AddError("当前版块评分设置继承至上级版块,不能进行删除操作,如要修改请修改上级版块评分设置或者把评分设置设为自定义"); return; } if (PointType == null) { msgDisplay.AddError(new InvalidParamError("pointtype")); return; } int sortOrder = _Request.Get <int>("sortorder", Method.Get, 0); RateSettings setting = new RateSettings(); setting.RateSets = new RateSetCollection(); foreach (RateSet set in AllSettings.Current.RateSettings.RateSets) { if (set.NodeID != nodeID) { setting.RateSets.Add(set); } else { RateSet tempSet = new RateSet(); tempSet.NodeID = nodeID; tempSet.RateItems = new RateSetItemCollection(); for (int i = 0; i < set.RateItems.Count; i++) { RateSetItem item = set.RateItems[i]; if (item.PointType == PointType.Value && sortOrder == item.RoleSortOrder && item.RoleID != Guid.Empty) { } else { tempSet.RateItems.Add(item); } } setting.RateSets.Add(tempSet); } } try { if (!SettingManager.SaveSettings(setting)) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { string urlRef = Request.UrlReferrer.ToString(); string query; int index = urlRef.IndexOf('?'); if (index > 0) { query = urlRef.Substring(index + 1); } else { query = string.Empty; } string url = Request.RawUrl; if (url.IndexOf('?') > -1) { url = url.Substring(0, url.IndexOf('?')); } url = url + "?" + query; BbsRouter.JumpToUrl(url, "success=true"); } //Response.Redirect(Request.UrlReferrer.ToString()); } catch (Exception ex) { msgDisplay.AddError(ex.Message); } }
private RateSetItem GetRankSetItem(UserPointType pointType, int id, bool isNew, MessageDisplay msgDisplay) { Guid roleID; string value; int sortOrder = 0; if (id == 0 && isNew == false) { roleID = Guid.Empty; } else { string roleIDName, sortOrderName; if (isNew) { roleIDName = "new_role_" + pointType.ToString(); sortOrderName = "new_sortorder_" + pointType.ToString(); } else { roleIDName = "role_" + pointType.ToString() + "_" + id; sortOrderName = "sortorder_" + pointType.ToString() + "_" + id; } roleID = _Request.Get <Guid>(roleIDName, Method.Post, Guid.Empty); if (roleID == Guid.Empty) { if (isNew && _Request.Get("display_tr_" + pointType.ToString(), Method.Post, "0") == "1") { msgDisplay.AddError("new_" + pointType.ToString(), "请选择一个用户组"); } else { return(null); } } value = _Request.Get(sortOrderName, Method.Post, string.Empty); if (!int.TryParse(value, out sortOrder)) { if (isNew) { msgDisplay.AddError("new_" + pointType.ToString(), "排序必须为整数"); } else { msgDisplay.AddError(pointType.ToString(), id, "排序必须为整数"); } } } RateSetItem rankSetItem = new RateSetItem(); rankSetItem.PointType = pointType; rankSetItem.RoleID = roleID; rankSetItem.RoleSortOrder = sortOrder; string minValueName, maxValueName, maxValueInTimeName; if (isNew) { minValueName = "new_minvalue_" + pointType.ToString(); maxValueName = "new_maxvalue_" + pointType.ToString(); maxValueInTimeName = "new_maxvalueintime_" + pointType.ToString(); } else { minValueName = "minvalue_" + pointType.ToString() + "_" + id; maxValueName = "maxvalue_" + pointType.ToString() + "_" + id; maxValueInTimeName = "maxvalueintime_" + pointType.ToString() + "_" + id; } int minValue = 0, maxValue = 0, maxValueInTime = 0; StringBuilder errors = new StringBuilder(); value = _Request.Get(minValueName, Method.Post, string.Empty); if (value == string.Empty) { minValue = 0; } else { if (!int.TryParse(value, out minValue)) { errors.Append("最小值,"); } } value = _Request.Get(maxValueName, Method.Post, string.Empty); if (value == string.Empty) { maxValue = 0; } else { if (!int.TryParse(value, out maxValue)) { errors.Append("最大值,"); } } value = _Request.Get(maxValueInTimeName, Method.Post, string.Empty); if (value == string.Empty) { maxValueInTime = 0; } else { if (ForumID == 0)//全局设置 才能设置最大评分数 { if (!int.TryParse(value, out maxValueInTime)) { errors.Append("1天内最大评分数,"); } } } string errorName; if (isNew) { errorName = "new_" + pointType.ToString(); } else { errorName = pointType.ToString(); } if (errors.Length > 0) { msgDisplay.AddError(errorName, id, errors.ToString(0, errors.Length - 1) + "必须为整数"); return(null); } if (maxValue < minValue) { msgDisplay.AddError(errorName, id, "“评分最小值”不能大于“评分最大值”"); return(null); } if (maxValueInTime < 0) { msgDisplay.AddError(errorName, id, "1天内最大评分数必须大于0"); return(null); } if (Math.Abs(minValue) > maxValueInTime) { msgDisplay.AddError(errorName, id, "1天内最大评分数必须大等于“评分最小值”的绝对值"); return(null); } if (Math.Abs(maxValue) > maxValueInTime) { msgDisplay.AddError(errorName, id, "1天内最大评分数必须大等于“评分最大值”的绝对值"); return(null); } rankSetItem.MaxValue = maxValue; rankSetItem.MinValue = minValue; rankSetItem.MaxValueInTime = maxValueInTime; return(rankSetItem); }
protected int GetTodayValue(RateSetItem item) { int value = 0; foreach (PostMark postMark in PostMarks) { value += Math.Abs(postMark.Points[(int)item.PointType]); } int maxValue = 0; foreach (RateSetItem tempSet in TopRateSets) { if (tempSet.PointType == item.PointType) { maxValue = item.MaxValueInTime; break; } } int temp = maxValue - value; if (temp > 0) return temp; else return 0; }
private RateSetItem GetRankSetItem(UserPointType pointType, int id, bool isNew, MessageDisplay msgDisplay) { Guid roleID; string value; int sortOrder = 0; if (id == 0 && isNew == false) roleID = Guid.Empty; else { string roleIDName, sortOrderName; if (isNew) { roleIDName = "new_role_" + pointType.ToString(); sortOrderName = "new_sortorder_" + pointType.ToString(); } else { roleIDName = "role_" + pointType.ToString() + "_" + id; sortOrderName = "sortorder_" + pointType.ToString() + "_" + id; } roleID = _Request.Get<Guid>(roleIDName, Method.Post, Guid.Empty); if (roleID == Guid.Empty) { if (isNew && _Request.Get("display_tr_" + pointType.ToString(), Method.Post, "0") == "1") { msgDisplay.AddError("new_" + pointType.ToString(), "请选择一个用户组"); } else return null; } value = _Request.Get(sortOrderName, Method.Post, string.Empty); if (!int.TryParse(value, out sortOrder)) { if (isNew) msgDisplay.AddError("new_" + pointType.ToString(), "排序必须为整数"); else msgDisplay.AddError(pointType.ToString(), id, "排序必须为整数"); } } RateSetItem rankSetItem = new RateSetItem(); rankSetItem.PointType = pointType; rankSetItem.RoleID = roleID; rankSetItem.RoleSortOrder = sortOrder; string minValueName,maxValueName,maxValueInTimeName; if (isNew) { minValueName = "new_minvalue_" + pointType.ToString(); maxValueName = "new_maxvalue_" + pointType.ToString(); maxValueInTimeName = "new_maxvalueintime_" + pointType.ToString(); } else { minValueName = "minvalue_" + pointType.ToString() + "_" + id; maxValueName = "maxvalue_" + pointType.ToString() + "_" + id; maxValueInTimeName = "maxvalueintime_" + pointType.ToString() + "_" + id; } int minValue = 0, maxValue = 0, maxValueInTime = 0; StringBuilder errors = new StringBuilder(); value = _Request.Get(minValueName, Method.Post, string.Empty); if (value == string.Empty) { minValue = 0; } else { if (!int.TryParse(value, out minValue)) { errors.Append("最小值,"); } } value = _Request.Get(maxValueName, Method.Post, string.Empty); if (value == string.Empty) { maxValue = 0; } else { if (!int.TryParse(value, out maxValue)) { errors.Append("最大值,"); } } value = _Request.Get(maxValueInTimeName, Method.Post, string.Empty); if (value == string.Empty) { maxValueInTime = 0; } else { if (ForumID == 0)//全局设置 才能设置最大评分数 { if (!int.TryParse(value, out maxValueInTime)) { errors.Append("1天内最大评分数,"); } } } string errorName; if(isNew) errorName = "new_"+pointType.ToString(); else errorName = pointType.ToString(); if (errors.Length > 0) { msgDisplay.AddError(errorName, id, errors.ToString(0, errors.Length - 1) + "必须为整数"); return null; } if (maxValue < minValue) { msgDisplay.AddError(errorName, id, "“评分最小值”不能大于“评分最大值”"); return null; } if (maxValueInTime < 0) { msgDisplay.AddError(errorName, id, "1天内最大评分数必须大于0"); return null; } if (Math.Abs(minValue) > maxValueInTime) { msgDisplay.AddError(errorName, id, "1天内最大评分数必须大等于“评分最小值”的绝对值"); return null; } if (Math.Abs(maxValue) > maxValueInTime) { msgDisplay.AddError(errorName, id, "1天内最大评分数必须大等于“评分最大值”的绝对值"); return null; } rankSetItem.MaxValue = maxValue; rankSetItem.MinValue = minValue; rankSetItem.MaxValueInTime = maxValueInTime; return rankSetItem; }