private List <User> QueryActor(IEnumerable <User> users, IEnumerable <Smartflow.Core.Elements.Rule> rules)
        {
            List <User> actorList = new List <User>();

            foreach (Smartflow.Core.Elements.Rule rule in rules)
            {
                WorkflowRuleType ruleType = (WorkflowRuleType)Enum.Parse(typeof(WorkflowRuleType), rule.ID, true);
                if (ruleType == WorkflowRuleType.NODE_SEND_START_USER)
                {
                    WorkflowProcess process = base.ProcessService.Get(rule.InstanceID)
                                              .OrderByDescending(e => e.CreateTime)
                                              .FirstOrDefault(e => e.NodeType == WorkflowNodeCategory.Start);

                    if (process != null)
                    {
                        String orgCode = _actorService.GetOrganizationCode(process.ActorID);
                        actorList.AddRange(users.Where(u => u.OrganizationCode == orgCode).ToList());
                    }
                }
                else
                {
                    WorkflowProcess process = base.ProcessService.Get(rule.InstanceID).OrderByDescending(e => e.CreateTime).FirstOrDefault();
                    if (process != null)
                    {
                        String orgCode = _actorService.GetOrganizationCode(process.ActorID);
                        actorList.AddRange(users.Where(u => u.OrganizationCode == orgCode).ToList());
                    }
                }
            }
            return(actorList);
        }
        private IList <User> QueryActor(string group, IList <Elements.Rule> rules)
        {
            IList <User> users     = new UserByRoleQueryService().Query(group);
            List <User>  actorList = new List <User>();

            foreach (Elements.Rule rule in rules)
            {
                WorkflowRuleType ruleType = (WorkflowRuleType)Enum.Parse(typeof(WorkflowRuleType), rule.ID, true);
                if (ruleType == WorkflowRuleType.NODE_SEND_START_USER)
                {
                    WorkflowProcess process = base.ProcessService.Get(rule.InstanceID)
                                              .OrderByDescending(e => e.CreateDateTime)
                                              .FirstOrDefault(e => e.NodeType == WorkflowNodeCategory.Start);

                    if (process != null)
                    {
                        String orgCode = new SingleUserByActorQueryService().Query(process.ActorID);
                        actorList.AddRange(users.Where(u => u.OrgCode == orgCode).ToList());
                    }
                }
                else
                {
                    WorkflowProcess process = base.ProcessService.Get(rule.InstanceID).OrderByDescending(e => e.CreateDateTime).FirstOrDefault();
                    if (process != null)
                    {
                        String orgCode = new SingleUserByActorQueryService().Query(process.ActorID);
                        actorList.AddRange(users.Where(u => u.OrgCode == orgCode).ToList());
                    }
                }
            }
            return(actorList);
        }