diff --git a/build/common.props b/build/common.props index 774125c27..60e68faef 100644 --- a/build/common.props +++ b/build/common.props @@ -3,7 +3,7 @@ 3.0.0$(VersionSuffix) 5.0.0-beta.2$(VersionSuffix) - 4.1.0$(VersionSuffix) + 4.1.1$(VersionSuffix) 3.2.0$(VersionSuffix) 3.0.0$(VersionSuffix) 3.0.3$(VersionSuffix) diff --git a/src/WebJobs.Extensions.CosmosDB/Trigger/CosmosDBTriggerAttributeBindingProviderGenerator.cs b/src/WebJobs.Extensions.CosmosDB/Trigger/CosmosDBTriggerAttributeBindingProviderGenerator.cs index 6697c9388..5c0d8f9f3 100644 --- a/src/WebJobs.Extensions.CosmosDB/Trigger/CosmosDBTriggerAttributeBindingProviderGenerator.cs +++ b/src/WebJobs.Extensions.CosmosDB/Trigger/CosmosDBTriggerAttributeBindingProviderGenerator.cs @@ -43,7 +43,8 @@ public Task TryCreateAsync(TriggerBindingProviderContext contex Type documentType = CosmosDBTriggerAttributeBindingProviderGenerator.GetParameterType(context.Parameter); - if (typeof(JArray).IsAssignableFrom(documentType)) + if (typeof(JArray).IsAssignableFrom(documentType) + || typeof(JObject[]).IsAssignableFrom(documentType)) { documentType = typeof(JObject); // When binding to JArray, use JObject as contract. } diff --git a/test/WebJobs.Extensions.CosmosDB.Tests/Trigger/CosmosDBTriggerAttributeBindingProviderTests.cs b/test/WebJobs.Extensions.CosmosDB.Tests/Trigger/CosmosDBTriggerAttributeBindingProviderTests.cs index 59435a454..e9aa1d063 100644 --- a/test/WebJobs.Extensions.CosmosDB.Tests/Trigger/CosmosDBTriggerAttributeBindingProviderTests.cs +++ b/test/WebJobs.Extensions.CosmosDB.Tests/Trigger/CosmosDBTriggerAttributeBindingProviderTests.cs @@ -603,6 +603,10 @@ public static void Func3([CosmosDBTrigger("%aDatabase%", "%aCollection%", Connec { } + public static void Func4([CosmosDBTrigger("%aDatabase%", "%aCollection%", Connection = "CosmosDBConnectionString")] JObject[] docs) + { + } + public static IEnumerable GetParameters() { var type = typeof(ValidCosmosDBTriggerBindingsWithAppSettings); @@ -611,7 +615,8 @@ public static IEnumerable GetParameters() { new[] { GetFirstParameter(type, "Func1") }, new[] { GetFirstParameter(type, "Func2") }, - new[] { GetFirstParameter(type, "Func3") } + new[] { GetFirstParameter(type, "Func3") }, + new[] { GetFirstParameter(type, "Func4") } }; } } @@ -648,6 +653,10 @@ public static void Func2([CosmosDBTrigger("aDatabase", "aCollection")] JArray do { } + public static void Func4([CosmosDBTrigger("aDatabase", "aCollection")] JObject[] docs) + { + } + public static void Func3([CosmosDBTrigger("aDatabase", "aCollection", LeaseDatabaseName = "aDatabase", LeaseContainerName = "aLeaseCollection")] IReadOnlyList docs) { } @@ -660,7 +669,8 @@ public static IEnumerable GetParameters() { new[] { GetFirstParameter(type, "Func1") }, new[] { GetFirstParameter(type, "Func2") }, - new[] { GetFirstParameter(type, "Func3") } + new[] { GetFirstParameter(type, "Func3") }, + new[] { GetFirstParameter(type, "Func4") } }; } } @@ -675,6 +685,10 @@ public static void Func2([CosmosDBTrigger("%aDatabase%-test", "%aCollection%-tes { } + public static void Func4([CosmosDBTrigger("%aDatabase%-test", "%aCollection%-test")] JObject[] docs) + { + } + public static void Func3([CosmosDBTrigger("%aDatabase%-test", "%aCollection%-test", LeaseDatabaseName = "%aDatabase%-test")] IReadOnlyList docs) { } @@ -687,7 +701,8 @@ public static IEnumerable GetParameters() { new[] { GetFirstParameter(type, "Func1") }, new[] { GetFirstParameter(type, "Func2") }, - new[] { GetFirstParameter(type, "Func3") } + new[] { GetFirstParameter(type, "Func3") }, + new[] { GetFirstParameter(type, "Func4") } }; } }