Functions.Templates/Templates/SqlOutputBinding-CSharp/SqlOutputBindingCSharp.cs (38 lines of code) (raw):
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Extensions.Sql;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
namespace Company.Function
{
public static class SqlOutputBindingCSharp
{
// Visit https://aka.ms/sqlbindingsoutput to learn how to use this output binding
[FunctionName("SqlOutputBindingCSharp")]
public static async Task<CreatedResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
[Sql("table", "SqlConnectionString")] IAsyncCollector<ToDoItem> output,
ILogger log)
{
log.LogInformation("C# HTTP trigger with SQL Output Binding function processed a request.");
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
ToDoItem todoitem = JsonConvert.DeserializeObject<ToDoItem>(requestBody) ?? new ToDoItem
{
Id = "1",
Priority = 1,
Description = "Hello World"
};
await output.AddAsync(todoitem);
return new CreatedResult(req.Path, todoitem);
}
}
public class ToDoItem
{
public string Id { get; set; }
public int Priority { get; set; }
public string Description { get; set; }
}
}