Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
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);
            }
        }
Example #4
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);
        }
Example #5
0
        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;
        }
Example #6
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;

        }