Exemplo n.º 1
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            RuntimeArgument argument;

            argument = new RuntimeArgument("JobGuid", typeof(Guid), ArgumentDirection.In);
            metadata.Bind(this.JobGuid, argument);
            metadata.AddArgument(argument);

            argument = new RuntimeArgument("UserGuid", typeof(Guid), ArgumentDirection.In);
            metadata.Bind(this.UserGuid, argument);
            metadata.AddArgument(argument);

            if (this.Try != null)
            {
                metadata.AddChild(this.Try);
            }
            if (this.Finally != null)
            {
                metadata.AddChild(this.Finally);
            }

            argument = new RuntimeArgument("MaxRetries", typeof(int), ArgumentDirection.In);
            metadata.Bind(this.MaxRetries, argument);
            metadata.AddArgument(argument);

            metadata.AddImplementationVariable(this.retries);
        }
Exemplo n.º 2
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            RuntimeArgument argument;

            argument = new RuntimeArgument("JobGuid", typeof(Guid), ArgumentDirection.In);
            metadata.Bind(this.JobGuid, argument);
            metadata.AddArgument(argument);

            argument = new RuntimeArgument("UserGuid", typeof(Guid), ArgumentDirection.In);
            metadata.Bind(this.UserGuid, argument);
            metadata.AddArgument(argument);

            if (this.Try != null)
            {
                metadata.AddChild(this.Try);
            }
            if (this.Finally != null)
            {
                metadata.AddChild(this.Finally);
            }

            argument = new RuntimeArgument("MaxRetries", typeof(int), ArgumentDirection.In);
            metadata.Bind(this.MaxRetries, argument);
            metadata.AddArgument(argument);

            metadata.AddImplementationVariable(this.retries);
        }
Exemplo n.º 3
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            metadata.SetVariablesCollection(this.Variables);

            metadata.AddChild(this.Body);
            metadata.AddChild(this.Condition);
        }
Exemplo n.º 4
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            //clean up
            this.internalStates.Clear();
            this.internalStateFuncs.Clear();
            this.internalTransitions.Clear();

            StateMachineHelper.ProcessChildStates(metadata, this.States, this.internalStates, this.internalStateFuncs);

            if (this.Entry != null)
            {
                metadata.AddChild(this.Entry);
            }
            if (this.Exit != null)
            {
                metadata.AddChild(this.Exit);
            }

            ProcessTransitions(metadata);

            metadata.AddArgument(new RuntimeArgument("ToState", this.ToState.ArgumentType, ArgumentDirection.In));
            metadata.AddArgument(new RuntimeArgument("EventManager", this.EventManager.ArgumentType, ArgumentDirection.In));

            metadata.AddImplementationVariable(this.currentRunningTriggers);
            metadata.AddImplementationVariable(this.hasRunningChildState);
            metadata.AddImplementationVariable(this.isExiting);
            metadata.AddImplementationVariable(this.evaluateConditionBookmark);
            metadata.AddImplementationVariable(this.completeStateBookmark);
        }
Exemplo n.º 5
0
        static void AddTransitionData(NativeActivityMetadata metadata, InternalTransition internalTransition, Transition transition)
        {
            TransitionData  transitionData = new TransitionData();
            Activity <bool> condition      = transition.Condition;

            transitionData.Condition = condition;
            if (condition != null)
            {
                metadata.AddChild(condition);
            }

            Activity action = transition.Action;

            transitionData.Action = action;
            if (action != null)
            {
                metadata.AddChild(action);
            }

            if (transition.To != null)
            {
                transitionData.To = transition.To.InternalState;
            }
            internalTransition.TransitionDataList.Add(transitionData);
        }
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.AddChild(this.Body);
     metadata.AddChild(this.CancellationHandler);
     metadata.SetVariablesCollection(this.Variables);
     metadata.AddImplementationVariable(this.suppressCancel);
 }
Exemplo n.º 7
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.AddChild(Body);
     metadata.AddChild(Condition);
     metadata.AddImplementationVariable(_elements);
     base.CacheMetadata(metadata);
 }
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            metadata.AddChild(SkipCondition);
            metadata.AddChild(Body);

            base.CacheMetadata(metadata);
        }
Exemplo n.º 9
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            _internalTransitions.Clear();

            if (this.Entry != null)
            {
                metadata.AddChild(this.Entry);
            }

            if (this.Exit != null)
            {
                metadata.AddChild(this.Exit);
            }

            this.ProcessTransitions(metadata);
            metadata.SetVariablesCollection(this.Variables);

            RuntimeArgument eventManagerArgument = new RuntimeArgument("EventManager", this.EventManager.ArgumentType, ArgumentDirection.In);

            metadata.Bind(this.EventManager, eventManagerArgument);

            metadata.SetArgumentsCollection(
                new Collection <RuntimeArgument>
            {
                eventManagerArgument
            });

            metadata.AddImplementationVariable(_currentRunningTriggers);
            metadata.AddImplementationVariable(_isExiting);
            metadata.AddImplementationVariable(_evaluateConditionBookmark);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Creates and validates a description of the activity's arguments, variables, child activities, and activity delegates.
        /// </summary>
        /// <param name="metadata">The activity's metadata that encapsulates the activity's arguments, variables, child activities, and activity delegates.</param>
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            // Add a validation error if the Operation is not defined.
            if (this.Operation == null)
            {
                metadata.AddValidationError("AzureAsyncOperation requires an Azure activity to execute.");
                return;
            }

            // Add the publicly defined activities as children.
            metadata.AddChild(this.Operation);
            metadata.AddChild(this.Success);
            metadata.AddChild(this.Failure);

            // Define internal variables.
            metadata.AddImplementationVariable(this.PollingEndTime);
            metadata.AddImplementationVariable(this.OperationId);
            metadata.AddImplementationVariable(this.AzureActivityExceptionCaught);

            // Define public arguments.
            var thumbArgument = new RuntimeArgument("CertificateThumbprintId", typeof(string), ArgumentDirection.In);

            metadata.Bind(this.CertificateThumbprintId, thumbArgument);
            metadata.AddArgument(thumbArgument);
            var subArgument = new RuntimeArgument("SubscriptionId", typeof(string), ArgumentDirection.In);

            metadata.Bind(this.SubscriptionId, subArgument);
            metadata.AddArgument(subArgument);

            // Add our activities as delegates.
            metadata.AddDelegate(this.PollingBody);
            metadata.AddDelegate(this.DelayBody);
        }
Exemplo n.º 11
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            if (this.Try != null)
            {
                metadata.AddChild(this.Try);
            }
            if (this.Finally != null)
            {
                metadata.AddChild(this.Finally);
            }
            Collection <ActivityDelegate> delegates = new Collection <ActivityDelegate>();

            if (this.catches != null)
            {
                foreach (Catch @catch in this.catches)
                {
                    ActivityDelegate action = @catch.GetAction();
                    if (action != null)
                    {
                        delegates.Add(action);
                    }
                }
            }
            metadata.AddImplementationVariable(this.state);
            metadata.SetDelegatesCollection(delegates);
            metadata.SetVariablesCollection(this.Variables);
            if ((this.Finally == null) && (this.Catches.Count == 0))
            {
                metadata.AddValidationError(System.Activities.SR.CatchOrFinallyExpected(base.DisplayName));
            }
        }
Exemplo n.º 12
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            if (BatchingStrategy == null) metadata.AddValidationError("BatchingStrategy is required.");
            if (GetNextVectors.IsNull()) metadata.AddValidationError("GetNextVectors function is required.");
            if (ItemCountExpression == null) metadata.AddValidationError("ItemCountExpression is required.");

            metadata.AddChild(BatchingStrategy);
            metadata.AddDelegate(GetNextVectors);
            metadata.AddDelegate(DoReinitializeVectorProvider);

            RuntimeArgument arg;

            metadata.AddArgument(arg = new RuntimeArgument("LastResult", typeof(BatchExecutionResult), ArgumentDirection.In));
            metadata.Bind(LastResult, arg);

            metadata.AddArgument(arg = new RuntimeArgument("ReinitializationFrequency", typeof(int), ArgumentDirection.In));
            metadata.Bind(ReinitializationFrequency, arg);

            metadata.AddArgument(arg = new RuntimeArgument("UseCache", typeof(bool), ArgumentDirection.In));
            metadata.Bind(UseCache, arg);

            metadata.AddChild(ItemCountExpression);

            metadata.AddImplementationVariable(cachedVectors);
            metadata.AddImplementationVariable(strategyHasJustInited);

            base.CacheMetadata(metadata);
        }
Exemplo n.º 13
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.AddChild(this.Body);
     metadata.AddChild(this.CancellationHandler);
     metadata.SetVariablesCollection(this.Variables);
     metadata.AddImplementationVariable(this.suppressCancel);
 }
Exemplo n.º 14
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.AddChild(this.RepeatForever);
     foreach (Activity current in this.Triggers)
     {
         metadata.AddChild(current);
     }
     metadata.RequireExtension <BookmarkResumptionHelper>();
     base.CacheMetadata(metadata);
     metadata.AddDefaultExtensionProvider <BookmarkResumptionHelper>(() => new BookmarkResumptionHelper());
 }
Exemplo n.º 15
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     if (this.Request == null)
     {
         metadata.AddValidationError(new ValidationError(SR2.TransactedReceiveScopeMustHaveValidReceive(this.DisplayName), false, RequestPropertyName));
     }
     metadata.AddChild(this.Request);
     metadata.AddChild(this.Body);
     metadata.SetVariablesCollection(this.Variables);
     metadata.AddImplementationVariable(this.transactionHandle);
     metadata.AddImplementationVariable(this.isNested);
 }
Exemplo n.º 16
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            //call base.CacheMetadata to add the Activities and Variables to this activity's metadata
            base.CacheMetadata(metadata);

            // Declare children activities
            foreach (MatchCase matchCase in this.Cases)
            {
                metadata.AddChild(matchCase.Expression);
                metadata.AddChild(matchCase.Case);
            }
            metadata.AddImplementationVariable(this.CaseIndex);
        }
Exemplo n.º 17
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.SetVariablesCollection(this.Variables);
     metadata.AddChild(this.Body);
     if (this.Condition == null)
     {
         metadata.AddValidationError(System.Activities.SR.WhileRequiresCondition(base.DisplayName));
     }
     else
     {
         metadata.AddChild(this.Condition);
     }
 }
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.SetVariablesCollection(this.Variables);
     metadata.AddChild(this.Body);
     if (this.Condition == null)
     {
         metadata.AddValidationError(System.Activities.SR.WhileRequiresCondition(base.DisplayName));
     }
     else
     {
         metadata.AddChild(this.Condition);
     }
 }
Exemplo n.º 19
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            Console.WriteLine("CacheMetadata");
            if (Activities != null && Activities.Count > 0)
            {
                foreach (Activity activity in Activities)
                {
                    metadata.AddChild(activity);
                }
            }

            metadata.AddChild(Condition);
            metadata.AddImplementationVariable(scheduledChildren);
        }
Exemplo n.º 20
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     Console.WriteLine("CacheMetadata");
     metadata.SetChildrenCollection(Activities);
     metadata.AddChild(Condition);
     metadata.AddImplementationVariable(activityIndex);
 }
Exemplo n.º 21
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            if (this.branchBodies == null)
            {
                this.branchBodies = new Collection <Activity>();
            }
            else
            {
                this.branchBodies.Clear();
            }

            foreach (PickBranch branch in this.Branches)
            {
                if (branch.Trigger == null)
                {
                    metadata.AddValidationError(new ValidationError(SR.PickBranchRequiresTrigger(branch.DisplayName), false, null, branch));
                }

                PickBranchBody pickBranchBody = new PickBranchBody
                {
                    Action      = branch.Action,
                    DisplayName = branch.DisplayName,
                    Trigger     = branch.Trigger,
                    Variables   = branch.Variables,
                };

                this.branchBodies.Add(pickBranchBody);

                metadata.AddChild(pickBranchBody, origin: branch);
            }

            metadata.AddImplementationVariable(this.pickStateVariable);
        }
Exemplo n.º 22
0
        private void ProcessTransitions(NativeActivityMetadata metadata)
        {
            for (int i = 0; i < this.Transitions.Count; i++)
            {
                Transition         transition         = this.Transitions[i];
                InternalTransition internalTransition = null;
                Activity           triggerActivity    = transition.ActiveTrigger;

                if (!_triggerInternalTransitionMapping.TryGetValue(triggerActivity, out internalTransition))
                {
                    metadata.AddChild(triggerActivity);

                    internalTransition = new InternalTransition
                    {
                        Trigger = triggerActivity,
                        InternalTransitionIndex = _internalTransitions.Count,
                    };

                    _triggerInternalTransitionMapping.Add(triggerActivity, internalTransition);
                    _internalTransitions.Add(internalTransition);
                }

                AddTransitionData(metadata, internalTransition, transition);
            }
        }
Exemplo n.º 23
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     if (this.Child != null)
     {
         metadata.AddChild(this.Child);
     }
 }
Exemplo n.º 24
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            base.CacheMetadata(metadata);

            // Add CaseRanges and Default as children of SwitchRange so they can be scheduled
            foreach (CaseRange <T> range in Cases)
            {
                metadata.AddChild(range.Action);
            }

            // Perform validations
            int malformedRanges = 0;

            foreach (CaseRange <T> range in Cases)
            {
                if (range.From == null || range.To == null)
                {
                    malformedRanges++;
                }
            }

            if (malformedRanges > 0)
            {
                metadata.AddValidationError(string.Format(CultureInfo.InvariantCulture, "SwitchRange {0}: There is/are {1} CaseRange(s) that have either From or To unspecified", DisplayName, malformedRanges));
            }
        }
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            metadata.AddChild(Body);

            // add arguments
            metadata.AddArgument(new RuntimeArgument("Action", typeof(Command?), ArgumentDirection.In, true));
            metadata.AddArgument(new RuntimeArgument("Bookmark", typeof(CustomBookmark), ArgumentDirection.In, false));
            metadata.AddArgument(new RuntimeArgument("BookmarkHistory", typeof(List <CustomBookmark>), ArgumentDirection.InOut, false));
        }
Exemplo n.º 26
0
        /// <summary>
        /// Creates and validates a description of the activity’s arguments, variables, child activities, and activity delegates.
        /// </summary>
        /// <param name="metadata">The activity’s metadata that encapsulates the activity’s arguments, variables, child activities, and activity delegates.</param>
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            foreach (var kvp in this.Arguments)
            {
                metadata.AddArgument(new RuntimeArgument(kvp.Key, kvp.Value.ArgumentType, kvp.Value.Direction));
            }

            metadata.SetVariablesCollection(this.Variables);
            metadata.AddChild(this.StateMachine);
        }
Exemplo n.º 27
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            base.CacheMetadata(metadata);
            fields.Add(new ActivityDTO("[[FormView]]", Html, 0));
            _assignActivity = new DsfMultiAssignActivity {
                OutputMapping = null, FieldsCollection = fields, InputMapping = null
            };

            metadata.AddChild(_assignActivity);
            metadata.AddDelegate(_delegate);
        }
Exemplo n.º 28
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            base.CacheMetadata(metadata);

            if (Body.IsNull()) metadata.AddValidationError("Body is required.");

            metadata.AddDelegate(Body);

            if (Condition == null) metadata.AddValidationError("Condition is required.");

            metadata.AddChild(Condition);
        }
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            // activities
            foreach (Activity activity in this.Activities)
            {
                metadata.AddChild(activity);
            }

            metadata.AddImplementationVariable(this.LastIndex);

            metadata.AddImplementationVariable(this.ResumeParent);
        }
Exemplo n.º 30
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     if (this.Body == null)
     {
         metadata.AddValidationError("The Body property must contain an Activity.");
     }
     else if (impl == null)
     {
         CreateImplementation();
         metadata.AddChild(impl);
     }
 }
Exemplo n.º 31
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     if (this.Body == null)
     {
         metadata.AddValidationError("The Body property must contain an Activity.");
     }
     else if (impl == null)
     {
         CreateImplementation();
         metadata.AddChild(impl);
     }
 }
Exemplo n.º 32
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            metadata.AddChild(this.Body);
            metadata.SetImplementationVariablesCollection(
                new Collection<Variable>
                {
                    this.declaredHandle
                });

            RuntimeArgument correlatesWithArgument = new RuntimeArgument("CorrelatesWith", typeof(CorrelationHandle), ArgumentDirection.In);
            metadata.Bind(this.CorrelatesWith, correlatesWithArgument);
            metadata.SetArgumentsCollection(new Collection<RuntimeArgument> { correlatesWithArgument });
        }
Exemplo n.º 33
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            // activities
            foreach (Activity activity in this.Activities)
            {
                metadata.AddChild(activity);
            }


            metadata.AddImplementationVariable(this.LastIndex);

            metadata.AddImplementationVariable(this.ResumeParent);
        }
Exemplo n.º 34
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            metadata.AddChild(this.Body);
            metadata.SetImplementationVariablesCollection(new Collection <Variable> {
                this.declaredHandle
            });
            RuntimeArgument argument = new RuntimeArgument("CorrelatesWith", typeof(CorrelationHandle), ArgumentDirection.In);

            metadata.Bind(this.CorrelatesWith, argument);
            metadata.SetArgumentsCollection(new Collection <RuntimeArgument> {
                argument
            });
        }
Exemplo n.º 35
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     base.CacheMetadata(metadata);
     //
     // Must use AddChild (which adds children as 'public') otherwise you will get the following exception:
     //
     // The private implementation of activity Decision has the following validation error:
     // Compiler error(s) encountered processing expression t.Eq(d.Get("FirstName",AmbientDataList),"Trevor").
     // 't' is not declared. It may be inaccessible due to its protection level
     // 'd' is not declared. It may be inaccessible due to its protection level
     //
     metadata.AddChild(_expression);
 }
Exemplo n.º 36
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            if (Try != null)
            {
                metadata.AddChild(this.Try);
            }

            if (this.Finally != null)
            {
                metadata.AddChild(this.Finally);
            }

            Collection <ActivityDelegate> delegates = new Collection <ActivityDelegate>();

            if (this.catches != null)
            {
                foreach (Catch item in this.catches)
                {
                    ActivityDelegate catchDelegate = item.GetAction();
                    if (catchDelegate != null)
                    {
                        delegates.Add(catchDelegate);
                    }
                }
            }

            metadata.AddImplementationVariable(this.state);

            metadata.SetDelegatesCollection(delegates);

            metadata.SetVariablesCollection(this.Variables);

            if (this.Finally == null && this.Catches.Count == 0)
            {
                metadata.AddValidationError(SR.CatchOrFinallyExpected(this.DisplayName));
            }
        }
Exemplo n.º 37
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            // child activities
            metadata.AddChild(this.Body);

            // arguments
            metadata.AddArgument(new RuntimeArgument("ConnectionString", typeof(string), ArgumentDirection.In, true));

            // variables
            metadata.AddImplementationVariable(this.noPersistHandle);
            foreach (Variable variable in this.variables)
            {
                metadata.AddVariable(variable);
            }

            base.CacheMetadata(metadata);
        }
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            // child activities
            metadata.AddChild(this.Body);

            // arguments
            metadata.AddArgument(new RuntimeArgument("ConnectionString", typeof(string), ArgumentDirection.In, true));

            // variables
            metadata.AddImplementationVariable(this.noPersistHandle);
            foreach (Variable variable in this.variables)
            {
                metadata.AddVariable(variable);
            }

            base.CacheMetadata(metadata);
        }
Exemplo n.º 39
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            metadata.AddDelegate(Body);
            metadata.AddChild(LoopAction);
            Interfaces.Extensions.AddCacheArgument(metadata, "MaxResults", MaxResults);
            Interfaces.Extensions.AddCacheArgument(metadata, "MinResults", MinResults);
            Interfaces.Extensions.AddCacheArgument(metadata, "Timeout", Timeout);

            Interfaces.Extensions.AddCacheArgument(metadata, "Selector", Selector);
            Interfaces.Extensions.AddCacheArgument(metadata, "From", From);
            Interfaces.Extensions.AddCacheArgument(metadata, "Elements", Elements);
            Interfaces.Extensions.AddCacheArgument(metadata, "WaitForReady", WaitForReady);

            metadata.AddImplementationVariable(_elements);
            metadata.AddImplementationVariable(_allelements);
            base.CacheMetadata(metadata);
        }
Exemplo n.º 40
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            RuntimeArgument argument = new RuntimeArgument("Timeout", typeof(TimeSpan), ArgumentDirection.In, false);

            metadata.Bind(this.Timeout, argument);
            metadata.SetArgumentsCollection(new Collection <RuntimeArgument> {
                argument
            });
            metadata.AddImplementationChild(this.NestedScopeTimeoutWorkflow);
            if (this.Body != null)
            {
                metadata.AddChild(this.Body);
            }
            metadata.AddImplementationVariable(this.runtimeTransactionHandle);
            metadata.AddImplementationVariable(this.nestedScopeTimeout);
            metadata.AddImplementationVariable(this.delayWasScheduled);
            metadata.AddImplementationVariable(this.nestedScopeTimeoutActivityInstance);
        }
Exemplo n.º 41
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            if (GetBatchingStrategyFactory.IsNull()) metadata.AddValidationError("GetBatchingStrategyFactory function is expected.");
            if (GetNextVectors.IsNull()) metadata.AddValidationError("GetNextVectors function is expected.");
            if (ItemCount == null) metadata.AddValidationError("ItemCount expression expected.");

            metadata.AddDelegate(GetBatchingStrategyFactory);
            metadata.AddDelegate(GetNextVectors);
            metadata.AddDelegate(ReinitializeVectorProvider);

            RuntimeArgument arg;

            metadata.AddArgument(arg = new RuntimeArgument("LastResult", typeof(BatchExecutionResult), ArgumentDirection.In));
            metadata.Bind(LastResult, arg);

            metadata.AddArgument(arg = new RuntimeArgument("ReinitializationFrequency", typeof(int), ArgumentDirection.In));
            metadata.Bind(ReinitializationFrequency, arg);

            metadata.AddChild(ItemCount);

            base.CacheMetadata(metadata);
        }
Exemplo n.º 42
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.AddChild(Body);
 }
Exemplo n.º 43
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     if (this.TaskBody != null)
     {
         metadata.AddChild(this.TaskBody);
         if (ContainsTaskActivity(this.TaskBody))
         {
             metadata.AddValidationError(typeof(TaskActivityAssignException).Name);
         }
     }
 }
Exemplo n.º 44
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            Collection<RuntimeArgument> arguments = new Collection<RuntimeArgument>();

            foreach (KeyValuePair<string, Argument> entry in this.DelegateArguments)
            {
                RuntimeArgument argument = new RuntimeArgument(entry.Key, entry.Value.ArgumentType, entry.Value.Direction);
                metadata.Bind(entry.Value, argument);
                arguments.Add(argument);
            }

            metadata.SetArgumentsCollection(arguments);
            metadata.AddDelegate(this.Delegate);

            if (this.Delegate != null)
            {
                IList<RuntimeDelegateArgument> targetDelegateArguments = this.Delegate.RuntimeDelegateArguments;
                if (this.DelegateArguments.Count != targetDelegateArguments.Count)
                {
                    metadata.AddValidationError(SR.WrongNumberOfArgumentsForActivityDelegate);
                }

                // Validate that the names and directionality of arguments in DelegateArguments dictionary 
                // match the names and directionality of arguments returned by the ActivityDelegate.GetDelegateParameters 
                // call above. 
                for (int i = 0; i < targetDelegateArguments.Count; i++)
                {
                    RuntimeDelegateArgument expectedParameter = targetDelegateArguments[i];
                    Argument delegateArgument = null;
                    string parameterName = expectedParameter.Name;
                    if (this.DelegateArguments.TryGetValue(parameterName, out delegateArgument))
                    {
                        if (delegateArgument.Direction != expectedParameter.Direction)
                        {
                            metadata.AddValidationError(SR.DelegateParameterDirectionalityMismatch(parameterName, delegateArgument.Direction, expectedParameter.Direction));
                        }

                        if (expectedParameter.Direction == ArgumentDirection.In)
                        {
                            if (!TypeHelper.AreTypesCompatible(delegateArgument.ArgumentType, expectedParameter.Type))
                            {
                                metadata.AddValidationError(SR.DelegateInArgumentTypeMismatch(parameterName, expectedParameter.Type, delegateArgument.ArgumentType));
                            }
                        }
                        else
                        {
                            if (!TypeHelper.AreTypesCompatible(expectedParameter.Type, delegateArgument.ArgumentType))
                            {
                                metadata.AddValidationError(SR.DelegateOutArgumentTypeMismatch(parameterName, expectedParameter.Type, delegateArgument.ArgumentType));
                            }
                        }
                    }
                    else
                    {
                        metadata.AddValidationError(SR.InputParametersMissing(expectedParameter.Name));
                    }

                    if (!this.hasOutputArguments && ArgumentDirectionHelper.IsOut(expectedParameter.Direction))
                    {
                        this.hasOutputArguments = true;
                    }
                }
            }

            metadata.AddChild(this.Default);
        }
Exemplo n.º 45
0
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            if (this.branchBodies == null)
            {
                this.branchBodies = new Collection<Activity>();
            }
            else
            {
                this.branchBodies.Clear();
            }

            foreach (PickBranch branch in this.Branches)
            {
                if (branch.Trigger == null)
                {
                    metadata.AddValidationError(new ValidationError(SR.PickBranchRequiresTrigger(branch.DisplayName), false, null, branch));
                }
                
                PickBranchBody pickBranchBody = new PickBranchBody
                {
                    Action = branch.Action,
                    DisplayName = branch.DisplayName,
                    Trigger = branch.Trigger,
                    Variables = branch.Variables,                    
                };

                this.branchBodies.Add(pickBranchBody);

                metadata.AddChild(pickBranchBody, origin: branch);
            }
                        
            metadata.AddImplementationVariable(this.pickStateVariable);
        }
Exemplo n.º 46
0
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.AddChild(this.Body);
     metadata.AddImplementationVariable(this.noPersistHandle);
 }
Exemplo n.º 47
0
        /// <summary>
        /// Informs the runtime about our activity and the data
        /// </summary>
        /// <param name="metadata">The metadata</param>
        /// <remarks>
        /// The base class implementation
        /// will discover variables and child activities using reflection.  By overriding 
        /// CacheMetadata we avoid this and get improved performance.
        /// </remarks>
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            /// implementation variables are variables that are 
            /// private to our workflow.
            metadata.AddImplementationVariable(lastIndexHint);
            metadata.AddImplementationVariable(preCompleted);
            metadata.AddImplementationVariable(bodyCompleted);

            metadata.SetVariablesCollection(Variables);

            metadata.AddChild(Pre);
            metadata.AddChild(Post);

            // Cannot use metadata.SetActivitiesCollection because of Pre/Post
            foreach (Activity activity in Activities)
            {
                metadata.AddChild(activity);
            }
        }
Exemplo n.º 48
0
        /// <summary>
        /// Validate the required number of activities of pipeline activity.
        /// Setup the cachemetadata with variables and activities.
        /// </summary>
        /// <param name="metadata"></param>
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            int count = 0;

            if (this.Activities != null)
            {
                count = this.Activities.Count;
            }

            if (count == 0)
            {
                metadata.AddValidationError(new ValidationError(ActivityResources.NoChildPipeline, true));
                return;
            }

            //BUGBUG: As written, the following checks cause error in scenarios where they should not. 
            // They are left in for the time being but disabled until we verify that there are no
            // scenarios where we need to check for two variables being assigned.
#if false
            if (Input != null && Input.Expression != null && this.Activities[0].Input != null && this.Activities[0].Input.Expression != null)
            {
                metadata.AddValidationError(new ValidationError(ActivityResources.DuplicateInputDefinedInPipeline, true));
                this.inputValidationFailed = true;
                return;
            }

            if (Result != null && Result.Expression != null && this.Activities[count - 1].Result != null && this.Activities[count - 1].Result.Expression != null)
            {
                metadata.AddValidationError(new ValidationError(ActivityResources.DuplicateResultDefinedInPipeline, true));
                this.resultValidationFailed = true;
                return;
            }
#endif
            // Adding variables into the CacheMetadata of pipeline activity.
            metadata.AddImplementationVariable(this.lastIndexHint);

            // We use a GUID here to make this name hard to guess. It's not a security issue,
            // it just prevents code from accidentally taking a dependency on it.
            this.OutputStream = new Variable<PSDataCollection<PSObject>>(Guid.NewGuid().ToString().Replace("-","_"));
            this.InputStream = new Variable<PSDataCollection<PSObject>>(Guid.NewGuid().ToString().Replace("-","_"));

            metadata.AddVariable(this.OutputStream);
            metadata.AddVariable(this.InputStream);

            bool appendOutput = false;
            if ((this.AppendOutput != null) && (this.AppendOutput.Value))
            {
                appendOutput = true;
            }

            // Adding activities into the CacheMetadata of pipeline activity.
            if (count == 1)
            {

                if (Input != null && Input.Expression != null)
                {
                    this.Activities[0].Input = this.Input;
                }

                if (Result != null && Result.Expression != null)
                {
                    this.Activities[0].Result = this.Result;
                }

                if (appendOutput)
                {
                    this.Activities[0].AppendOutput = true;
                }

                metadata.AddChild(this.Activities[0]);
            }
            else
            {

                if (Input != null && Input.Expression != null)
                {
                    this.Activities[0].Input = this.Input;
                }

                // Connecting child activities with temporary input and out streams.
                this.Activities[0].Result = this.OutputStream;
                metadata.AddChild(this.Activities[0]);

                for (int i = 1; i < (count - 1); i++)
                {
                    this.Activities[i].Input = this.InputStream;
                    this.Activities[i].Result = this.OutputStream;

                    metadata.AddChild(this.Activities[i]);
                }

                if (Result != null && Result.Expression != null)
                {
                    this.Activities[count - 1].Result = this.Result;
                }

                if (appendOutput)
                {
                    this.Activities[count - 1].AppendOutput = true;
                }

                this.Activities[count - 1].Input = this.InputStream;
                metadata.AddChild(this.Activities[count - 1]);
            }
        }
 protected override void CacheMetadata(NativeActivityMetadata metadata)
 {
     metadata.AddImplementationVariable(noPersistHandle);
     metadata.AddChild(tryCatch);
     //base.CacheMetadata(metadata); // it would add the public Body activity twice
 }
        /// <summary>
        /// Creates and validates a description of the activity's arguments, variables, child activities, and activity delegates.
        /// </summary>
        /// <param name="metadata">The activity's metadata that encapsulates the activity's arguments, variables, child activities, and activity delegates.</param>
        protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            // Add a validation error if the Operation is not defined.
            if (this.Operation == null)
            {
                metadata.AddValidationError("AzureAsyncOperation requires an Azure activity to execute.");
                return;
            }

            // Add the publicly defined activities as children.
            metadata.AddChild(this.Operation);
            metadata.AddChild(this.Success);
            metadata.AddChild(this.Failure);

            // Define internal variables.
            metadata.AddImplementationVariable(this.PollingEndTime);
            metadata.AddImplementationVariable(this.OperationId);
            metadata.AddImplementationVariable(this.AzureActivityExceptionCaught);

            // Define public arguments.
            var thumbArgument = new RuntimeArgument("CertificateThumbprintId", typeof(string), ArgumentDirection.In);
            metadata.Bind(this.CertificateThumbprintId, thumbArgument);
            metadata.AddArgument(thumbArgument);
            var subArgument = new RuntimeArgument("SubscriptionId", typeof(string), ArgumentDirection.In);
            metadata.Bind(this.SubscriptionId, subArgument);
            metadata.AddArgument(subArgument);

            // Add our activities as delegates.
            metadata.AddDelegate(this.PollingBody);
            metadata.AddDelegate(this.DelayBody);
        }