示例#1
0
        public static IEnumerable <WorkflowBranch> ChildBranches(WorkflowItem startItem)
        {
            var allBranches = new List <WorkflowBranch>();

            var childBranch = new WorkflowBranch(startItem);

            if (childBranch.Childs().Any())
            {
                foreach (var child in childBranch.Childs())
                {
                    allBranches.Add(childBranch.Add(child));
                }
            }
            else
            {
                allBranches.Add(childBranch);
            }

            return(allBranches);
        }
示例#2
0
        public static IEnumerable <WorkflowBranch> ParentBranches(WorkflowItem startItem)
        {
            var allBranches = new List <WorkflowBranch>();

            var parentBranch = new WorkflowBranch(startItem);

            if (parentBranch.Parents().Any())
            {
                foreach (var parent in parentBranch.Parents())
                {
                    allBranches.Add(parentBranch.Add(parent));
                }
            }
            else
            {
                allBranches.Add(parentBranch);
            }

            return(allBranches);
        }
示例#3
0
 public IEnumerable <WorkflowBranch> ChildBranches()
 {
     return(WorkflowBranch.ChildBranches(this));
 }
示例#4
0
 private WorkflowBranch Add(WorkflowBranch workflowBranch)
 {
     return(new WorkflowBranch(_workflowItems.Concat(workflowBranch._workflowItems).ToArray()));
 }
示例#5
0
 public IEnumerable <WorkflowBranch> ChildBranches()
 {
     return(Children().SelectMany(c => WorkflowBranch.ChildBranches(c, Workflow)));
 }
示例#6
0
 public IEnumerable <WorkflowBranch> ParentBranches()
 {
     return(_parentItems.SelectMany(i => WorkflowBranch.ParentBranches(i, Workflow)));
 }