public async Task <IEnumerable <string> > CrawlingMainAsync([OrchestrationTrigger] DurableOrchestrationContext context, ILogger logger)
        {
            var uri = context.GetInput <Uri>();

            // We use an activity function to download HTML from the URI specified as input. We use an extension method that incorporates
            // a default retry logic, because we can't be sure that the resource is aways available.
            var html = await context.CallActivityWithDefaultRetryAsync <string>(Names.DownloadHtml, uri);

            // Links are parsed in another activity function. This is done without retry logic, because the activity function does not rely
            // on external resources. This also shows how you can call activity functions without retry logic.
            var links = await context.CallActivityAsync <IEnumerable <string> >(Names.ParseLinks, html);

            return(links);
        }