private void SaveSettings2() { MessageDisplay msgDisplay = CreateMessageDisplay(); if (PointActionType == null) { msgDisplay.AddError(new InvalidParamError("type").Message); return; } if (_Request.Get("inheritType", Method.Post, "False").ToLower() == "true") { PointActionSettings tempSetting = (PointActionSettings)AllSettings.Current.PointActionSettings.Clone(); PointActionCollection tempPointActions = new PointActionCollection(); for (int i = 0; i < tempSetting.PointActions.Count; i++) { if (string.Compare(tempSetting.PointActions[i].Type, PointActionType.Type, true) == 0 && tempSetting.PointActions[i].NodeID == NodeID) { } else { tempPointActions.Add(tempSetting.PointActions[i]); } } tempSetting.PointActions = tempPointActions; try { if (!SettingManager.SaveSettings(tempSetting)) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { BbsRouter.JumpToUrl(Request.RawUrl, "success=true"); } //Response.Redirect(Request.RawUrl); } catch (Exception ex) { msgDisplay.AddError(ex.Message); } return; } msgDisplay = null; PointAction tempPointAction = new PointAction(); tempPointAction.Type = PointActionType.Type; if (PointActionType.ActionAttributes != null) { int errorNamesCount = PointActionType.ActionAttributes.Count * 2; if (PointActionType.NeedValueActionAttributes != null) { errorNamesCount += PointActionType.NeedValueActionAttributes.Count * 2; } string[] errorNames = new string[errorNamesCount]; int i = 0; foreach (string action in PointActionType.ActionAttributes.Keys) { errorNames[i] = action; i++; errorNames[i] = "new." + action; i++; } if (PointActionType.NeedValueActionAttributes != null) { foreach (string action in PointActionType.NeedValueActionAttributes.Keys) { errorNames[i] = "pointtype." + action; i++; errorNames[i] = "pointtype.new." + action; i++; } } msgDisplay = CreateMessageDisplay(errorNames); foreach (string action in PointActionType.ActionAttributes.Keys) { int[] tempIds = StringUtil.Split <int>(_Request.Get("id." + action, Method.Post, string.Empty)); List <int> sortOrdes = new List <int>(); PointActionItem item; foreach (int id in tempIds) { item = GetPointActionItem(action, id, false, msgDisplay); if (item != null) { if (id != 0 && sortOrdes.Contains(item.RoleSortOrder) && msgDisplay.HasAnyError() == false) { msgDisplay.AddError(action, id, Lang_Error.User_UserPointActionDubleSortOrderError); } else { if (id != 0) { sortOrdes.Add(item.RoleSortOrder); } tempPointAction.PointActionItems.Add(item); } } } item = GetPointActionItem(action, 0, true, msgDisplay); if (item != null) { if (sortOrdes.Contains(item.RoleSortOrder) && msgDisplay.HasAnyError() == false) { msgDisplay.AddError("new." + action, Lang_Error.User_UserPointActionDubleSortOrderError); } tempPointAction.PointActionItems.Add(item); } } } if (PointActionType.NeedValueActionAttributes != null) { if (msgDisplay == null) { string[] errorNames = new string[PointActionType.NeedValueActionAttributes.Count * 2]; int i = 0; foreach (string action in PointActionType.NeedValueActionAttributes.Keys) { errorNames[i] = "pointtype." + action; i++; errorNames[i] = "pointtype.new." + action; i++; } msgDisplay = CreateMessageDisplay(errorNames); } foreach (string action in PointActionType.NeedValueActionAttributes.Keys) { int[] tempIds = StringUtil.Split <int>(_Request.Get("pointtype.id." + action, Method.Post, string.Empty)); List <int> sortOrdes = new List <int>(); PointActionItem item; foreach (int id in tempIds) { item = GetNeedValuePointActionItem(action, id, false, msgDisplay); if (item != null) { //msgDisplay.HasAnyError == false 是为避免 有两个SortOrder 不为数字出错了(这时都为0) 而这里又提示重复 if (id != 0 && sortOrdes.Contains(item.RoleSortOrder) && msgDisplay.HasAnyError() == false) { msgDisplay.AddError("pointtype." + action, id, Lang_Error.User_UserPointActionDubleSortOrderError); } else { if (id != 0) { sortOrdes.Add(item.RoleSortOrder); } tempPointAction.PointActionItems.Add(item); } } } item = GetNeedValuePointActionItem(action, 0, true, msgDisplay); if (item != null) { if (sortOrdes.Contains(item.RoleSortOrder) && msgDisplay.HasAnyError() == false) { msgDisplay.AddError("pointtype.new." + action, Lang_Error.User_UserPointActionDubleSortOrderError); } tempPointAction.PointActionItems.Add(item); } } } if (msgDisplay.HasAnyError()) { return; } PointActionSettings setting = (PointActionSettings)AllSettings.Current.PointActionSettings.Clone(); PointActionCollection pointActions = new PointActionCollection(); tempPointAction.NodeID = NodeID; bool haveAdd = false; for (int i = 0; i < setting.PointActions.Count; i++) { if (string.Compare(setting.PointActions[i].Type, PointActionType.Type, true) == 0 && setting.PointActions[i].NodeID == NodeID) { pointActions.Add(tempPointAction); haveAdd = true; } else { pointActions.Add(setting.PointActions[i]); } } if (!haveAdd) { pointActions.Add(tempPointAction); } setting.PointActions = pointActions; try { if (!SettingManager.SaveSettings(setting)) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { BbsRouter.JumpToUrl(Request.RawUrl, "success=true"); } } catch (Exception ex) { msgDisplay.AddError(ex.Message); } }
private void Delete() { m_Success = false; MessageDisplay msgDisplay = CreateMessageDisplay(); if (PointAction.NodeID != NodeID) { msgDisplay.AddError("当前积分继承至上级,不能进行删除操作,如要修改请修改上级积分或者把积分设为自定义"); return; } string action = _Request.Get("actiontype", Method.Get, string.Empty); int sortOrder = _Request.Get <int>("sortorder", Method.Get, 0); PointActionSettings setting = (PointActionSettings)AllSettings.Current.PointActionSettings.Clone(); PointActionCollection pointActions = new PointActionCollection(); PointAction oldPointAction = setting.PointActions.GetPointAction(PointActionType.Type, NodeID); if (oldPointAction == null) { msgDisplay.AddError(new InvalidParamError("nodeID")); return; } for (int i = 0; i < setting.PointActions.Count; i++) { if (string.Compare(setting.PointActions[i].Type, PointActionType.Type, true) == 0 && oldPointAction.NodeID == setting.PointActions[i].NodeID) { PointAction tempPointAction = new PointAction(); tempPointAction.Type = PointActionType.Type; foreach (PointActionItem item in setting.PointActions[i].PointActionItems) { if (string.Compare(item.Action, action, true) == 0 && sortOrder == item.RoleSortOrder && item.RoleID != Guid.Empty) { } else { tempPointAction.PointActionItems.Add(item); } } tempPointAction.NodeID = NodeID; if (setting.PointActions[i].NodeID == NodeID)//原来就有的的设置 { pointActions.Add(tempPointAction); } else//原来没有 复制父节点设置 { pointActions.Add(tempPointAction);//复制父节点设置 pointActions.Add(setting.PointActions[i]);//父节点保留 } } else { pointActions.Add(setting.PointActions[i]); } } setting.PointActions = pointActions; 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"); } //else // _Request.Clear(Method.Post); } catch (Exception ex) { msgDisplay.AddError(ex.Message); } }
private void Delete() { MessageDisplay msgDisplay = CreateMessageDisplay(); string action = _Request.Get("actiontype", Method.Get, string.Empty); int sortOrder = _Request.Get <int>("sortorder", Method.Get, 0); PointActionSettings setting = (PointActionSettings)AllSettings.Current.PointActionSettings.Clone(); PointActionCollection pointActions = new PointActionCollection(); PointAction oldPointAction = setting.PointActions.GetPointAction(PointActionType.Type, NodeID); if (oldPointAction == null) { msgDisplay.AddError(new InvalidParamError("nodeID")); return; } for (int i = 0; i < setting.PointActions.Count; i++) { if (string.Compare(setting.PointActions[i].Type, PointActionType.Type, true) == 0 && oldPointAction.NodeID == setting.PointActions[i].NodeID) { PointAction tempPointAction = new PointAction(); tempPointAction.Type = PointActionType.Type; foreach (PointActionItem item in setting.PointActions[i].PointActionItems) { if (string.Compare(item.Action, action, true) == 0 && sortOrder == item.RoleSortOrder && item.RoleID != Guid.Empty) { } else { tempPointAction.PointActionItems.Add(item); } } tempPointAction.NodeID = NodeID; if (setting.PointActions[i].NodeID == NodeID)//原来就有的的设置 { pointActions.Add(tempPointAction); } else//原来没有 复制父节点设置 { pointActions.Add(tempPointAction);//复制父节点设置 pointActions.Add(setting.PointActions[i]);//父节点保留 } } else { pointActions.Add(setting.PointActions[i]); } } setting.PointActions = pointActions; try { if (!SettingManager.SaveSettings(setting)) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { _Request.Clear(Method.Post); } } catch (Exception ex) { msgDisplay.AddError(ex.Message); } }