/// <summary> /// Transition to another step /// </summary> public void Transition(PipExecutionStep toStep, bool force = false) { if (!force && !Step.CanTransitionTo(toStep)) { Contract.Assert(false, I($"Cannot transition from {Step} to {toStep}")); } Step = toStep; if (toStep == PipExecutionStep.Done) { End(); } }