private async Task <Guid> CreateNewScenarioAsync() { CloudBlobContainer formRecognizerCloudContainer = null; try { ScenarioSetupState = FormRecognizerScenarioSetupState.Running; // create cloud storage container and upload local files formRecognizerCloudContainer = AzureBlobHelper.GetCloudBlobContainer(StorageAccount, StorageKey, Guid.NewGuid().ToString()); await AzureBlobHelper.UploadStorageFilesToContainerAsync(LocalFileCollection, formRecognizerCloudContainer); string containerFullSASUrl = AzureBlobHelper.GetContainerSasToken(formRecognizerCloudContainer, sharedAccessStartTimeInMinutes: 5, sharedAccessExpiryTimeInMinutes: 5); // create and train the custom model Guid modelId = await this.formRecognizerService.TrainCustomModelAsync(containerFullSASUrl); ModelResultResponse model = await this.formRecognizerService.GetCustomModelAsync(modelId); // check creation status string status = (model?.ModelInfo?.Status ?? string.Empty).ToLower(); switch (status) { case "created": case "ready": ScenarioSetupState = FormRecognizerScenarioSetupState.Completed; return(modelId); case "invalid": default: ScenarioSetupState = FormRecognizerScenarioSetupState.Error; break; } } catch (Exception ex) { ScenarioCreationErrorDetails = ex.Message; ScenarioSetupState = FormRecognizerScenarioSetupState.Error; } finally { if (formRecognizerCloudContainer != null) { await formRecognizerCloudContainer.DeleteIfExistsAsync(); } } return(Guid.Empty); }