in src/PSRule.Rules.Azure/Data/Template/ExpressionHelpers.cs [737:776]
internal static object UnionObject(object[] o, bool deepMerge)
{
var result = new JObject();
if (o == null || o.Length == 0)
return result;
for (var i = 0; i < o.Length; i++)
{
if (o[i] is JObject jObject)
{
foreach (var property in jObject.Properties())
{
ReplaceOrMergeProperty(result, property.Name, property.Value, deepMerge);
}
}
else if (o[i] is IDictionary<string, string> dss)
{
foreach (var kv in dss)
{
ReplaceOrMergeProperty(result, kv.Key, JToken.FromObject(kv.Value), deepMerge);
}
}
else if (o[i] is IDictionary<string, object> dso)
{
foreach (var kv in dso)
{
ReplaceOrMergeProperty(result, kv.Key, JToken.FromObject(kv.Value), deepMerge);
}
}
else if (o[i] is IDictionary d)
{
foreach (DictionaryEntry kv in d)
{
var key = kv.Key.ToString();
ReplaceOrMergeProperty(result, key, JToken.FromObject(kv.Value), deepMerge);
}
}
}
return result;
}