/// <summary> /// 按用户的用户组 取出对该用户的设置 /// </summary> /// <param name="action"></param> /// <param name="userId"></param> /// <returns></returns> public PointActionItem GetPointActionItem(string action, int userId) { PointActionItemCollection items = GetPointActionItems(action); if (items.Count == 0) { return(null); } if (items.Count > 1) { User user = UserBO.Instance.GetUser(userId); if (user == null) { return(null); } UserRoleCollection roles = user.Roles; for (int i = 1; i < items.Count; i++) { foreach (UserRole role in roles) { if (role.RoleID == items[i].RoleID) { return(items[i]); } } } } return(items[0]); }
/// <summary> /// 按优先级顺序 RoleID 为 Guid.Empty的 在集合最前面 /// </summary> /// <param name="action"></param> /// <returns></returns> public PointActionItemCollection GetPointActionItems(string action) { PointActionItemCollection tempPointActionItems = new PointActionItemCollection(); PointActionItem tempItem = null; foreach (PointActionItem item in PointActionItems) { if (string.Compare(item.Action, action, true) == 0) { if (item.RoleID == Guid.Empty) { tempItem = item; continue; } int index = tempPointActionItems.Count; for (int i = 0; i < tempPointActionItems.Count; i++) { if (item.RoleSortOrder > tempPointActionItems[i].RoleSortOrder) { index = i; break; } } tempPointActionItems.Insert(index, item); } } PointActionItemCollection results = new PointActionItemCollection(); if (tempItem != null) { results.Add(tempItem); } for (int i = tempPointActionItems.Count - 1; i >= 0; i--) { results.Add(tempPointActionItems[i]); } //if (tempItem != null) // tempPointActionItems.Insert(0,tempItem); return(results); }
public void ClearExperiesData() { //return; PointActionCollection pointActions = new PointActionCollection(); foreach (PointAction pointAction in PointActions) { PointActionType pointActionType = PointActionManager.GetPointActionType(pointAction.Type); if (pointActionType == null) { continue; } //检查nodeID if (pointActionType.HasNodeList && pointAction.NodeID != 0) { bool isExperies = true; foreach (NodeItem item in pointActionType.NodeItemList) { if (item.NodeID == pointAction.NodeID) { isExperies = false; break; } } if (isExperies) { continue; } } PointAction tempPointAction = new PointAction(); //检查roleID PointActionItemCollection pointActionItems = new PointActionItemCollection(); foreach (PointActionItem pointActionItem in pointAction.PointActionItems) { if (pointActionItem.RoleID == Guid.Empty || AllSettings.Current.RoleSettings.Roles.GetValue(pointActionItem.RoleID) != null) { pointActionItems.Add(pointActionItem); } } tempPointAction.PointActionItems = pointActionItems; tempPointAction.NodeID = pointAction.NodeID; tempPointAction.Type = pointAction.Type; pointActions.Add(tempPointAction); } PointActionSettings setting = new PointActionSettings(); setting.PointActions = pointActions; try { SettingManager.SaveSettings(setting); } catch { } }
public PointAction() { Type = string.Empty; PointActionItems = new PointActionItemCollection(); }