private Step GetNext(Step current) { LinkedListNode<Step> aCurrent = this.flowSteps.Find(current); if (aCurrent.Next != null) return aCurrent.Next.Value; return null; }
/// <summary> /// 移除步骤 /// </summary> /// <param name="step">步骤</param> public void Remove(Step step) { if (this.flowSteps.Contains(step)) { this.flowSteps.Remove(step); } }
/// <summary> /// 插入步骤 /// </summary> /// <param name="newStep">新步骤</param> /// <param name="index">插入位置</param> public void Insert(Step newStep, int index) { if (index == this.flowSteps.Count()) { this.flowSteps.AddLast(newStep); return; } if (index < 0 || index > this.flowSteps.Count) { throw new ArgumentException("Insert step overflow index"); } if (!this.flowSteps.Contains(newStep)) { Step step = this.flowSteps.ElementAt(index); LinkedListNode<Step> current = this.flowSteps.Find(step); this.flowSteps.AddBefore(current, newStep); } }
/// <summary> /// addAfter /// </summary> /// <param name="step"></param> /// <param name="newStep"></param> public void AddAfter(Step step, Step newStep) { this.flowSteps.AddAfter(this.flowSteps.Find(step), newStep); }
/// <summary> /// 添加流程步骤 /// </summary> /// <param name="step">步骤</param> public void Add(Step step) { this.flowSteps.AddLast(step); }
private static void SetDisableAtReturned(FlowEngine flowEngine, Step returnedStep) { LinkedListNode<Step> stepNode = flowEngine.FlowSteps.Find(returnedStep); if (stepNode == null) return; stepNode = stepNode.Next; while (stepNode != null) { Step step = stepNode.Value; foreach (var node in step.Nodes) { if (node.AuditType != AuditType.Disable) { node.AuditType = AuditType.Disable; } } stepNode = stepNode.Next; } }