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); }
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; }
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); }