public static async Task RunExportOrchestrator()

in SQL-Hybrid-Cloud-Toolkit/Components/ADP/ADPControl/Orchestrator.cs [76:102]


        public static async Task RunExportOrchestrator(
            [OrchestrationTrigger] IDurableOrchestrationContext context, ILogger log)
        {
            ExportRequest exportRequest = context.GetInput<ExportRequest>();

            // Getting the ARM template Skip ResourceName Parameterization.
            var databases = await context.CallActivityAsync<dynamic>(nameof(AzureResourceManagerActivity.GetArmTemplateForExportSkipParameterization), exportRequest);

            // Getting the ARM template.
            dynamic Template = await context.CallActivityAsync<dynamic>(nameof(AzureResourceManagerActivity.GetArmTemplateForExport), exportRequest);
            string json = JsonConvert.SerializeObject(Template);

            // Create BatchPool And Job
            string jobId = await context.CallActivityAsync<string>(nameof(BatchActivity.CreateBatchPoolAndExportJob), exportRequest);

            string containerUrl = await context.CallActivityAsync<string>(nameof(StorageActivity.GettingJobContainerUrl), (exportRequest.SubscriptionId, exportRequest.ResourceGroupName, exportRequest.StorageAccountName, jobId));
            await context.CallActivityAsync<string>(nameof(StorageActivity.UploadingArmTemplate), (containerUrl, json));

            BatchActivity.CreateBatchTasks("Export", jobId, containerUrl, exportRequest.BatchAccountUrl, exportRequest.SourceSqlServerName, exportRequest.AccessToken, databases, log);
        
            // create output values
            Tuple<string, string>[] outputValues = {
                Tuple.Create("jobId", jobId),
                Tuple.Create("containerUrl", containerUrl)
            };
            context.SetOutput(outputValues);
        }