Пример #1
0
        public IEnumerable <User> GetUserList(FlowNode node, FlowData flowData = null, User currentUser = null)
        {
            var parameter = new UserParameter
            {
                UserIds  = node?.UserIds,
                TitleIds = node?.JobTitleIds,
            };

            if (node != null)
            {
                if (node.LimitMode == DepartmentLimitMode.Assign)
                {
                    parameter.DepartmentIds = node.DepartmentIds;
                }
                else if (node.LimitMode == DepartmentLimitMode.Poster)
                {
                    if (flowData != null)
                    {
                        var firstNodeData = flowData.GetFirstNodeData();
                        var user          = Core.UserManager.GetModel(firstNodeData.UserId);
                        parameter.DepartmentIds = user.DepartmentIds;
                    }
                    else if (currentUser != null)
                    {
                        parameter.DepartmentIds = currentUser.DepartmentIds;
                    }
                }
                else if (node.LimitMode == DepartmentLimitMode.Self)
                {
                    parameter.DepartmentIds = currentUser.DepartmentIds;
                }
            }
            return(Core.UserManager.GetList(parameter));
        }