Ejemplo n.º 1
0
        private static Constraint SetOperationNames(TypeParameterIndex typeParameterIndex)
        {
            DelegateInArgument <Activity>          element = new DelegateInArgument <Activity>();
            DelegateInArgument <ValidationContext> context = new DelegateInArgument <ValidationContext>();

            DelegateInArgument <Activity> child   = new DelegateInArgument <Activity>();
            Variable <Type> iWorkflowActivityType = new Variable <Type>();

            return(new Constraint <Activity>
            {
                Body = new ActivityAction <Activity, ValidationContext>
                {
                    Argument1 = element,
                    Argument2 = context,
                    Handler = new Sequence
                    {
                        Variables =
                        {
                            iWorkflowActivityType
                        },
                        Activities =
                        {
                            new ForEach <Activity>
                            {
                                Values = new GetParentChain
                                {
                                    ValidationContext = context,
                                },
                                Body = new ActivityAction <Activity>
                                {
                                    Argument = child,
                                    Handler = new If
                                    {
                                        Condition = new InArgument <bool>((env) => child.Get(env).IsWorkflowActivity()),
                                        Then = new Assign <Type>
                                        {
                                            Value = new InArgument <Type>((env) => child.Get(env).GetWorkflowActivityType()),
                                            To = iWorkflowActivityType,
                                        },
                                    },
                                },
                            },
                            new OperationNamesSetter(typeParameterIndex)
                            {
                                Activity = new InArgument <Activity>((env) => element.Get(env)),
                                IWorkflowActivityType = new InArgument <Type>((env) => iWorkflowActivityType.Get(env)),
                            },
                        },
                    },
                },
            });
        }
Ejemplo n.º 2
0
 public OperationNamesSetter(TypeParameterIndex typeParameterIndex)
 {
     this.typeParameterIndex = typeParameterIndex;
 }
 public OperationNamesSetter(TypeParameterIndex typeParameterIndex)
 {
     this.typeParameterIndex = typeParameterIndex;
 }
        private static Constraint SetOperationNames(TypeParameterIndex typeParameterIndex)
        {
            DelegateInArgument<Activity> element = new DelegateInArgument<Activity>();
            DelegateInArgument<ValidationContext> context = new DelegateInArgument<ValidationContext>();

            DelegateInArgument<Activity> child = new DelegateInArgument<Activity>();
            Variable<Type> iWorkflowActivityType = new Variable<Type>();

            return new Constraint<Activity>
            {
                Body = new ActivityAction<Activity, ValidationContext>
                {
                    Argument1 = element,
                    Argument2 = context,
                    Handler = new Sequence
                    {
                        Variables =
                        {
                            iWorkflowActivityType
                        },
                        Activities =
                        {
                            new ForEach<Activity>
                            {
                                Values = new GetParentChain
                                {
                                    ValidationContext = context,
                                },
                                Body = new ActivityAction<Activity>
                                {
                                    Argument = child, 
                                    Handler = new If
                                    {
                                        Condition = new InArgument<bool>((env) => child.Get(env).IsWorkflowActivity()),
                                        Then = new Assign<Type>
                                        {
                                            Value = new InArgument<Type>((env) => child.Get(env).GetWorkflowActivityType()),
                                            To = iWorkflowActivityType,
                                        },
                                    },
                                },
                            },
                            new OperationNamesSetter(typeParameterIndex)
                            {
                                Activity = new InArgument<Activity>((env) => element.Get(env)),
                                IWorkflowActivityType = new InArgument<Type>((env) => iWorkflowActivityType.Get(env)),
                            },
                        },
                    },
                },
            };
        }