/// <summary> /// Create a transition between the given activity instances for the provided exit point /// </summary> public static void AddTransition(Workflow wf, WfActivity from, WfActivity to, ExitPoint exitPoint) { // remove any existing var toRemove = from.ForwardTransitions.FirstOrDefault(t => t.FromExitPoint.Id == exitPoint.Id); if (toRemove != null) { from.ForwardTransitions.Remove(toRemove); var asTerm = toRemove.As <Termination>(); if (asTerm != null) { wf.Terminations.Remove(asTerm); } var asTrans = toRemove.As <Transition>(); if (asTrans != null) { wf.Transitions.Remove(asTrans); } toRemove.Delete(); } var trans = new Transition() { Name = exitPoint.Name, FromActivity = @from, ToActivity = to, FromExitPoint = exitPoint }; from.ForwardTransitions.Add(trans.As <TransitionStart>()); wf.Transitions.Add(trans); }