public Activity Parse(JsonElement node, ITypeInfoProvider typeInfoProvider,
                              CompositeActivityParser compositeParser)
        {
            var displayName        = ActivityParseUtil.GetDisplayName(node);
            var branchesNodeExists = node.TryGetProperty("branches", out var branchesNode);

            node.TryGetProperty("completionCondition", out var completionConditionProperty);
            var parallel = new Parallel()
            {
                DisplayName         = displayName,
                CompletionCondition = new CSharpValue <bool>(completionConditionProperty.GetString()),
            };

            foreach (var variable in ActivityParseUtil.ParseVariables(node, typeInfoProvider))
            {
                parallel.Variables.Add(variable);
            }

            if (branchesNodeExists)
            {
                foreach (var branchNode in branchesNode.EnumerateArray())
                {
                    parallel.Branches.Add(compositeParser.Parse(branchNode));
                }
            }

            return(parallel);
        }
        public Activity Parse(JsonElement node, ITypeInfoProvider typeInfoProvider,
                              CompositeActivityParser compositeParser)
        {
            var activitiesNodeExists = node.TryGetProperty("activities", out var activitiesNode);

            var sequence = new Sequence
            {
                DisplayName = ActivityParseUtil.GetDisplayName(node),
            };

            if (activitiesNodeExists)
            {
                var activities = activitiesNode.EnumerateArray()
                                 .Select(compositeParser.Parse);
                foreach (var activity in activities)
                {
                    sequence.Activities.Add(activity);
                }
            }

            foreach (var v in ActivityParseUtil.ParseVariables(node, typeInfoProvider))
            {
                sequence.Variables.Add(v);
            }

            return(sequence);
        }
Esempio n. 3
0
 private PickBranch ParsePickBranch(JsonElement branchNode,  ITypeInfoProvider typeInfoProvider, CompositeActivityParser compositeParser)
 {
     var displayName = ActivityParseUtil. GetDisplayName(branchNode);
     var triggerNode = branchNode.GetProperty("trigger");
     var actionNodeExists = branchNode.TryGetProperty("action", out var actionNode);
     var branch = new PickBranch
     {
         DisplayName = displayName,
         Trigger = compositeParser. Parse(triggerNode),
         Action = actionNodeExists ? null : compositeParser. Parse(actionNode),
     };
     foreach (var variable in ActivityParseUtil.ParseVariables(branchNode, typeInfoProvider))
     {
         branch.Variables.Add(variable);
     }
     return branch;
 }
Esempio n. 4
0
        public Activity Parse(JsonElement node, ITypeInfoProvider typeInfoProvider, CompositeActivityParser compositeParser)
        {
            var @while = new While
            {
                DisplayName = ActivityParseUtil.GetDisplayName(node),
                Condition   = new CSharpValue <bool>(node.GetProperty("condition").GetString())
            };
            var bodyExists = node.TryGetProperty("body", out var bodyNode);

            if (bodyExists)
            {
                @while.Body = compositeParser.Parse(bodyNode);
            }

            foreach (var v in ActivityParseUtil.ParseVariables(node, typeInfoProvider))
            {
                @while.Variables.Add(v);
            }

            return(@while);
        }