Skip to content

Commit

Permalink
Merge pull request #209 from takenet/feature/630646-improve-execute-t…
Browse files Browse the repository at this point in the history
…emplate

630646 improve execute template
  • Loading branch information
danteveloso authored May 27, 2024
2 parents 3a4a022 + eea40c8 commit 2a92907
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,20 @@ public async Task ExecuteTemplateWithObjectAndStringVariablesAsPropertyShouldSuc
var variableName = "Peoples:";
var variableObj = "{ \"people\": [{\"name\": \"TestName\", \"city\": \"London\"}, {\"name\": \"TestName2\", \"city\": \"Manchester\"}] }";
var arrayVariable = "[{\"city\": \"London\", \"street\": \"Baker Street\"},{\"city\": \"Manchester\", \"street\": \"Oxford Road\"}]";
var array = "[\"uno\", \"dos\", \"tres\"]";
var outputVariable = "";
Context.GetVariableAsync(nameof(variableName), CancellationToken).Returns(variableName);
Context.GetVariableAsync(nameof(variableObj), CancellationToken).Returns(variableObj);
Context.GetVariableAsync(nameof(arrayVariable), CancellationToken).Returns(arrayVariable);
Context.GetVariableAsync(nameof(array), CancellationToken).Returns(array);

var templateResult = "TemplateResult";
var handlebarsTemplate = Substitute.For<HandlebarsTemplate<object, object>>();
handlebarsTemplate(Arg.Any<object>()).Returns("TemplateResult");
Handlebars.Compile(Arg.Any<string>()).Returns(handlebarsTemplate);
var settings = new ExecuteTemplateSettings
{
InputVariables = new []{ nameof(variableName), nameof(variableObj), nameof(arrayVariable) },
InputVariables = new []{ nameof(variableName), nameof(variableObj), nameof(arrayVariable), nameof(array) },
Template = $"{{{{{nameof(variableName)}}}}} {{{{#each people}}}}{{{{name}}}} living in {{{{city}}}} {{{{/each}}}} {{{{{nameof(arrayVariable)}}}}}",
OutputVariable = outputVariable
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,28 +86,20 @@ private JObject CopyArgumentsToObject(JObject arguments)
{
try
{
var deserializedJson = JsonConvert.DeserializeObject<JObject>(property.Value.ToString(), JsonSerializerSettingsContainer.Settings);
var deserializedJson = JsonConvert.DeserializeObject<JToken>(property.Value.ToString(), JsonSerializerSettingsContainer.Settings);
if (deserializedJson != null)
{
obj.Merge(deserializedJson);
obj.Add(property.Name, deserializedJson);
}
} catch (Exception ex)
{
if (ex is JsonReaderException)
{
obj[property.Name] = property.Value;
}
else if (ex is InvalidCastException)
{
var jToken = JsonConvert.DeserializeObject<JToken>(property.Value.ToString(), JsonSerializerSettingsContainer.Settings);
if (jToken != null)
{
obj.Add(property.Name, jToken);
}
}
}
}

return obj;
}
}
Expand Down

0 comments on commit 2a92907

Please sign in to comment.