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); }
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); }
public IEnumerable <WorkflowBranch> ChildBranches() { return(WorkflowBranch.ChildBranches(this)); }
private WorkflowBranch Add(WorkflowBranch workflowBranch) { return(new WorkflowBranch(_workflowItems.Concat(workflowBranch._workflowItems).ToArray())); }
public IEnumerable <WorkflowBranch> ChildBranches() { return(Children().SelectMany(c => WorkflowBranch.ChildBranches(c, Workflow))); }
public IEnumerable <WorkflowBranch> ParentBranches() { return(_parentItems.SelectMany(i => WorkflowBranch.ParentBranches(i, Workflow))); }