Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
 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));
 }