Example #1
0
        public async Task DoItManually()
        {
            var step1 = new FakeReceiveStep("step 1");
            var step2 = new FakeReceiveStep("step 2");
            var step3 = new FakeReceiveStep("step 3");
            var step4 = new FakeReceiveStep("step 4");

            Func <IncomingStepContext, Task> invokerFunction = context => step1.Process(context, () =>
            {
                return(step2.Process(context, () =>
                {
                    return step3.Process(context, () =>
                    {
                        return step4.Process(context, () =>
                        {
                            return Task.FromResult(0);
                        });
                    });
                }));
            });

            var c = GetIncomingStepContext();

            await invokerFunction(c);

            Console.WriteLine(string.Join(Environment.NewLine, c.Load <List <string> >()));
        }
Example #2
0
        public void CanInvokeProcessMethodOfAnIncomingStep()
        {
            var step          = new FakeReceiveStep("WOOHOO");
            var processMethod = step.GetType().GetMethod("Process");
            var context       = GetIncomingStepContext();

            var nextExpression = Expression.Lambda <Func <Task> >(Expression.Constant(Task.FromResult(0)));

            var stepReference   = Expression.Constant(step);
            var contextArgument = Expression.Constant(context);
            var callExpression  = Expression.Call(stepReference, processMethod, contextArgument, nextExpression);
        }