Scripts.CreateUserDefinedFunctionStreamAsync Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Creates a user defined function as an asynchronous operation in the Azure Cosmos DB service.
public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage> CreateUserDefinedFunctionStreamAsync(Microsoft.Azure.Cosmos.Scripts.UserDefinedFunctionProperties userDefinedFunctionProperties, Microsoft.Azure.Cosmos.RequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member CreateUserDefinedFunctionStreamAsync : Microsoft.Azure.Cosmos.Scripts.UserDefinedFunctionProperties * Microsoft.Azure.Cosmos.RequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage>
Public MustOverride Function CreateUserDefinedFunctionStreamAsync (userDefinedFunctionProperties As UserDefinedFunctionProperties, Optional requestOptions As RequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResponseMessage)
Parameters
- userDefinedFunctionProperties
- UserDefinedFunctionProperties
The UserDefinedFunctionProperties object.
- requestOptions
- RequestOptions
- cancellationToken
- CancellationToken
Returns
A task object representing the service response for the asynchronous operation.
Examples
This creates a user defined function then uses the function in an item query.
Scripts scripts = this.container.Scripts;
ResponseMessage response =await scripts.UserDefinedFunctions.CreateUserDefinedFunctionStreamAsync(
new UserDefinedFunctionProperties
{
Id = "calculateTax",
Body = @"function(amt) { return amt * 0.05; }"
});
if (!response.IsSuccessStatusCode)
{
//Handle and log exception
return;
}
QueryDefinition sqlQuery = new QueryDefinition(
"SELECT VALUE udf.calculateTax(t.cost) FROM toDoActivity t where t.cost > @expensive and t.status = @status")
.WithParameter("@expensive", 9000)
.WithParameter("@status", "Done");
using (FeedIterator<double> setIterator = this.container.Items.GetItemsQueryIterator<double>(
sqlQueryDefinition: sqlQuery,
partitionKey: "Done")
{
while (setIterator.HasMoreResults)
{
foreach (var tax in await setIterator.ReadNextAsync())
{
Console.WriteLine(tax);
}
}
}