public override ExecState ExecuteImmediate(ExecuteContext context) { bool condition = false; if (context.IsContinue) { condition = context.Restore <Boolean>(Ref, "Condition"); } else { condition = context.Evaluate(Condition); context.Store(Ref, "Condition", condition); } if (condition) { if (Then != null) { return(Parent.FindActivity(Then).ExecuteImmediate(context)); } } else { if (Else != null) { return(Parent.FindActivity(Else).ExecuteImmediate(context)); } } return(ExecuteNext(context)); }
public override ExecState ExecuteImmediate(ExecuteContext context) { Boolean condition = false; if (context.IsContinue) { condition = context.Restore <Boolean>(Ref, "Condition"); } else { condition = context.Evaluate(Condition); } if (condition) { return(Then.ExecuteImmediate(context)); } else { return(Else.ExecuteImmediate(context)); } }
public override ExecState ExecuteState(ExecuteContext context, out String nextState) { if (Entry != null) { Entry.ExecuteImmediate(context); } for (var i = 0; i < Transitions.Count; i++) { var tr = Transitions[i]; if (tr.Trigger != null) { tr.Trigger.ExecuteImmediate(context); } if (context.Evaluate(tr.Condition)) { tr.Action.ExecuteImmediate(context); nextState = tr.Destination; return(EndExecute(context)); } } nextState = NextState; return(EndExecute(context)); }