public static async Task <HttpResponseMessage> HttpStart(
            [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequestMessage req,
            [OrchestrationClient] DurableOrchestrationClient starter,
            TraceWriter log)
        {
            // Function input comes from the request content.
            ProcessRequest requestData = await req.Content.ReadAsAsync <ProcessRequest>();

            // Starting a new orchestrator with request data
            string instanceId = await starter.StartNewAsync("HttpTrigger_Orchestrator", requestData);

            log.Info($"Started orchestration with ID = '{instanceId}'.");

            var response = starter.CreateCheckStatusResponse(req, instanceId);

            // I specify a response interval so the Logic App doesn't check the status
            // until after 10 seconds has passed. If work will be longer you can change this
            // value as needed.
            response.Headers.RetryAfter = new RetryConditionHeaderValue(TimeSpan.FromSeconds(10));
            return(response);
        }
 public static string DoWork([ActivityTrigger] ProcessRequest requestData, TraceWriter log)
 {
     log.Info($"Doing work on data {requestData.data}.");
     Thread.Sleep(TimeSpan.FromMinutes(3));
     return("some response data");
 }