Exemplo n.º 1
0
        public IFluentWorkflowActionItem AfterLambda(string name, string positionalName = "")
        {
            Ensure.NotNullAndEmpty(name, nameof(name));

            AddParent(Identity.Lambda(name, positionalName));
            return(this);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Find the parent lambda by given parameters. Returns null if not found.
 /// </summary>
 /// <param name="workflowItem"></param>
 /// <param name="name"></param>
 /// <param name="positionalName"></param>
 /// <returns></returns>
 public static ILambdaItem ParentLambda(this IWorkflowItem workflowItem, string name,
                                        string positionalName = "")
 {
     Ensure.NotNull(workflowItem, "workflowItem");
     return(workflowItem.ParentLambdas.OfType <LambdaItem>()
            .FirstOrDefault(a => a.Has(Identity.Lambda(name, positionalName))));
 }
Exemplo n.º 3
0
        /// <summary>
        /// Jump to lambda function. Cause the workflow to fail if target activity is already active
        /// </summary>
        /// <param name="name">Lambda name.</param>
        /// <param name="postionalName">Lambda's postional name</param>
        /// <returns></returns>
        public JumpWorkflowAction ToLambda(string name, string postionalName = "")
        {
            Ensure.NotNullAndEmpty(name, nameof(name));
            var lambdaItem = _workflowItems.LambdaItem(Identity.Lambda(name, postionalName));

            return(WorkflowAction.JumpTo(_triggerItem, lambdaItem));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Schedule the lambda function.
        /// </summary>
        /// <param name="lambdaName">Lambda function name</param>
        /// <param name="positionalName">Positional name for lambda. It can be used to schedule same lambda multiple times in a workflow.</param>
        /// <returns></returns>
        protected IFluentLambdaItem ScheduleLambda(string lambdaName, string positionalName = "")
        {
            Ensure.NotNullAndEmpty(lambdaName, nameof(lambdaName));
            var lamdbaItem = new LambdaItem(Identity.Lambda(lambdaName, positionalName), this);

            _allWorkflowItems.Add(lamdbaItem);
            return(lamdbaItem);
        }
Exemplo n.º 5
0
 internal static ILambdaItem First(this IEnumerable <ILambdaItem> items, string name, string positionalName = "")
 {
     Ensure.NotNull(items, nameof(items));
     return(items.OfType <LambdaItem>().First(t => t.Has(Identity.Lambda(name, positionalName))));
 }