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); }