Esempio n. 1
0
        public static ResultExecutor Create(IModuleBuilder moduleBuilder, ICommandBuilder commandBuilder)
        {
            var(body, instanceParameter, argsParameter) = ExecutorUtils.GetBasicExpressions(moduleBuilder, commandBuilder);

            var callback = ExecutorUtils.CreateCallbackForTaskResult(body, instanceParameter, argsParameter);

            return(new ResultExecutor(callback));
        }
        public static ObjectTaskExecutor Create(IModuleBuilder moduleBuilder, ICommandBuilder commandBuilder)
        {
            var(body, instanceParameter, argsParameter) = ExecutorUtils.GetBasicExpressions(moduleBuilder, commandBuilder);

            body = ExecutorUtils.ChangeForObjectTaskResultExpression(body, commandBuilder.AsyncResultType);

            var callback = ExecutorUtils.CreateCallback(body, instanceParameter, argsParameter);

            return(new ObjectTaskExecutor(callback));
        }
        public static VoidTaskExecutor Create(IModuleBuilder moduleBuilder, ICommandBuilder commandBuilder)
        {
            var(body, instanceParameter, argsParameter) = ExecutorUtils.GetBasicExpressions(moduleBuilder, commandBuilder);

            body = ExecutorUtils.AddContinueWithExpression(body);

            var callback = ExecutorUtils.CreateCallback(body, instanceParameter, argsParameter);

            return(new VoidTaskExecutor(callback));
        }
Esempio n. 4
0
        public static VoidExecutor Create(IModuleBuilder moduleBuilder, ICommandBuilder commandBuilder)
        {
            var(body, instanceParameter, argsParameter) = ExecutorUtils.GetBasicExpressions(moduleBuilder, commandBuilder);

            var resultExpression = Expression.Constant(Task.FromResult(new SuccessResult() as IResult));

            body = Expression.Block(body, resultExpression);

            var callback = ExecutorUtils.CreateCallback(body, instanceParameter, argsParameter);

            return(new VoidExecutor(callback));
        }
Esempio n. 5
0
        public static ObjectExecutor Create(IModuleBuilder moduleBuilder, ICommandBuilder commandBuilder)
        {
            var(body, instanceParameter, argsParameter) = ExecutorUtils.GetBasicExpressions(moduleBuilder, commandBuilder);

            var objectResultCtor = ExecutorUtils.GetObjectResultCtor();

            body = Expression.New(objectResultCtor, body);

            var callback = ExecutorUtils.CreateCallbackForTaskResult(body, instanceParameter, argsParameter);

            return(new ObjectExecutor(callback));
        }