Example #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));
        }
Example #2
0
        public override ExecState ExecuteImmediate(ExecuteContext context)
        {
            Int32 index = 0;

            if (context.IsContinue)
            {
                index = context.Restore <Int32>(Ref, "Index");
            }
            while (index < Steps.Count)
            {
                context.Store(Ref, "Index", index);
                var st = Steps[index].ExecuteImmediate(context);
                if (st != ExecState.Complete)
                {
                    return(st);
                }
                index += 1;
            }
            return(ExecState.Complete);
        }