Beispiel #1
0
        /// <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]);
        }
Beispiel #2
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);
        }
Beispiel #3
0
        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
            { }
        }
Beispiel #4
0
 public PointAction()
 {
     Type             = string.Empty;
     PointActionItems = new PointActionItemCollection();
 }