Functions.Templates/Templates/DurableFunctionsOrchestration-CSharp-1.x/DurableFunctionsOrchestrationCSharp.cs (39 lines of code) (raw):

using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.Azure.WebJobs.Host; using Microsoft.Extensions.Logging; namespace Company.Function { public static class DurableFunctionsOrchestrationCSharp { [FunctionName("DurableFunctionsOrchestrationCSharp")] public static async Task<List<string>> RunOrchestrator( [OrchestrationTrigger] DurableOrchestrationContext context) { var outputs = new List<string>(); // Replace "hello" with the name of your Durable Activity Function. outputs.Add(await context.CallActivityAsync<string>(nameof(SayHello), "Tokyo")); outputs.Add(await context.CallActivityAsync<string>(nameof(SayHello), "Seattle")); outputs.Add(await context.CallActivityAsync<string>(nameof(SayHello), "London")); // returns ["Hello Tokyo!", "Hello Seattle!", "Hello London!"] return outputs; } [FunctionName(nameof(SayHello))] public static string SayHello([ActivityTrigger] string name, ILogger log) { log.LogInformation($"Saying hello to {name}."); return $"Hello {name}!"; } [FunctionName("DurableFunctionsOrchestrationCSharp_HttpStart")] public static async Task<HttpResponseMessage> HttpStart( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")]HttpRequestMessage req, [OrchestrationClient]DurableOrchestrationClient starter, ILogger log) { // Function input comes from the request content. string instanceId = await starter.StartNewAsync("DurableFunctionsOrchestrationCSharp", null); log.LogInformation($"Started orchestration with ID = '{instanceId}'."); return starter.CreateCheckStatusResponse(req, instanceId); } } }