public void AttachBranch(IWorkflowBuilder branch) { if (Branches.Contains(branch)) { return; } foreach (var step in branch.Steps) { var oldId = step.Id; AddStep(step); foreach (var step2 in branch.Steps) { foreach (var outcome in step2.Outcomes) { if (outcome.NextStep == oldId) { outcome.NextStep = step.Id; } } } } Branches.Add(branch); }
public void AttachBranch(IWorkflowBuilder branch) { if (Branches.Contains(branch)) { return; } var branchStart = LastStep + branch.LastStep + 1; foreach (var step in branch.Steps) { var oldId = step.Id; step.Id = oldId + branchStart; foreach (var step2 in branch.Steps) { foreach (var outcome in step2.Outcomes) { if (outcome.NextStep == oldId) { outcome.NextStep = step.Id; } } for (var i = 0; i < step2.Children.Count; i++) { if (step2.Children[i] == oldId) { step2.Children[i] = step.Id; } } } } foreach (var step in branch.Steps) { var oldId = step.Id; AddStep(step); foreach (var step2 in branch.Steps) { foreach (var outcome in step2.Outcomes) { if (outcome.NextStep == oldId) { outcome.NextStep = step.Id; } } for (var i = 0; i < step2.Children.Count; i++) { if (step2.Children[i] == oldId) { step2.Children[i] = step.Id; } } } } Branches.Add(branch); }
public void FillWithRecords(Table table, string columnName) { foreach (var item in table.AllRecords) { if (!Branches.Contains(item) && item.Record[columnName].Equals(value)) { Branches.Add(item); } } }
public bool Contains(Element item) { if (item is Branch) { return(Branches.Contains((Branch)item)); } else if (item is Value) { return(Values.Contains((Value)item)); } else { throw new NotSupportedException(String.Format("Abstract nodes of type '{0}' are not supported.", item == null ? "null" : item.GetType().FullName)); } }
public async Task UpdateBranchesAsync() { var previousBranch = Branch; Dictionary <string, int> branchStats = new Dictionary <string, int>(); foreach (var repository in settings_.GetValidatedGitRepositories()) { var branches = await GitHelper.GetBranchesAsync(repository); foreach (var branch in branches) { if (branchStats.TryGetValue(branch, out int count)) { branchStats[branch] = ++count; } else { branchStats[branch] = 1; } } } Branches.Clear(); Branches.Add(null); foreach (var branch in branchStats.OrderByDescending(b => b.Value).ThenBy(b => b.Key)) { Branches.Add(branch.Key); } if (previousBranch != null && Branches.Contains(previousBranch)) { Branch = previousBranch; } else { Branch = null; } }