private Activity ParseCore <T>(JsonElement node, CompositeActivityParser compositeParser) { var values = node.GetProperty("values").GetString(); var valueName = node.GetProperty("valueName").GetString(); var bodyExists = node.TryGetProperty("body", out var bodyNode); var @foreach = new ForEach <T> { DisplayName = ActivityParseUtil.GetDisplayName(node), Values = new CSharpValue <IEnumerable <T> >(values) }; var activityAction = new ActivityAction <T> { Argument = new DelegateInArgument <T>(valueName) }; if (bodyExists) { activityAction.Handler = compositeParser.Parse(bodyNode); } @foreach.Body = activityAction; return(@foreach); }
private Activity ParseSwitchCore <T>(JsonElement node, CompositeActivityParser compositeParser) { var defaultNodeExists = node.TryGetProperty("default", out var defaultNode); var casesNodeExists = node.TryGetProperty("cases", out var casesNode); var @switch = new Switch <T> { DisplayName = ActivityParseUtil.GetDisplayName(node), Expression = new CSharpValue <T>(node.GetProperty("expression").GetString()) }; if (defaultNodeExists) { @switch.Default = compositeParser.Parse(defaultNode); } if (casesNodeExists) { foreach (var caseNode in casesNode.EnumerateArray()) { var key = caseNode.GetProperty("key").GetString(); var value = compositeParser.Parse(caseNode.GetProperty("value")); @switch.Cases.Add(new KeyValuePair <T, Activity>(ValueFromText <T>(key), value)); } } return(@switch); }
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); }
public Activity Parse(JsonElement node, ITypeInfoProvider typeInfoProvider, CompositeActivityParser compositeParser) { var trace = new Trace { DisplayName = ActivityParseUtil.GetDisplayName(node), Text = new CSharpValue <string>(node.GetProperty("text").GetString()) }; return(trace); }
public Activity Parse(JsonElement node, ITypeInfoProvider typeInfoProvider, CompositeActivityParser compositeParser) { var pick = new Pick {DisplayName = ActivityParseUtil. GetDisplayName(node)}; var branchesNodeExists = node.TryGetProperty("branches", out var branchesNode); if (branchesNodeExists) { foreach (var branchNode in branchesNode.EnumerateArray()) { pick.Branches.Add(ParsePickBranch(branchNode, typeInfoProvider, compositeParser)); } } return pick; }
private Activity ParseAssignCore <T>(JsonElement node) { var assign = new Assign <T>() { DisplayName = ActivityParseUtil.GetDisplayName(node) }; var to = node.GetProperty("to").GetString(); assign.To = new OutArgument <T>(new CSharpReference <T>(to)); var value = node.GetProperty("value").GetString(); assign.Value = new CSharpValue <T>(value); return(assign); }
public Activity Parse(JsonElement node, ITypeInfoProvider typeInfoProvider, CompositeActivityParser compositeParser) { var inputType = typeInfoProvider.Find(node.GetProperty("inType").GetString()); var outputType = typeInfoProvider.Find(node.GetProperty("outType").GetString()); var argumentsExits = node.TryGetProperty("arguments", out var argumentsNode); var arguments = argumentsExits ? argumentsNode.GetString() : null; var code = node.GetProperty("code").GetString(); var displayName = ActivityParseUtil.GetDisplayName(node); var result = node.GetProperty("result").GetString(); var methodInfo = _methodInfo !.MakeGenericMethod(inputType, outputType); return((Activity)methodInfo.Invoke(this, new object[] { displayName, code, result, arguments })); }
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 resultExists = node.TryGetProperty("result", out var resultNode); var userTask = new UserTask() { DisplayName = ActivityParseUtil.GetDisplayName(node), Name = node.GetProperty("name").GetString(), }; if (resultExists) { userTask.Result = new OutArgument <string>(new CSharpReference <string>(resultNode.GetString())); } return(userTask); }
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); }
public Activity Parse(JsonElement node, ITypeInfoProvider typeInfoProvider, CompositeActivityParser compositeParser) { var thenNodeExists = node.TryGetProperty("then", out var thenNode); var elseNodeExists = node.TryGetProperty("else", out var elseNode); var @if = new If { DisplayName = ActivityParseUtil.GetDisplayName(node), Condition = new CSharpValue <bool>(node.GetProperty("condition").GetString()), }; if (thenNodeExists) { @if.Then = compositeParser.Parse(thenNode); } if (elseNodeExists) { @if.Else = compositeParser.Parse(elseNode); } return(@if); }