static async void ExecuteDemo()
        {
            //Create/get an object detection workspace for the provided ownerId
            ODMWorkspaceManager wm = ODMWorkspaceManager.Initialize(true,
                                                                    DemoSettings.ownerId,
                                                                    DemoSettings.storageName,
                                                                    DemoSettings.storageKey,
                                                                    DemoSettings.dbEndpoint,
                                                                    DemoSettings.dbPrimaryKey,
                                                                    DemoSettings.dbName,
                                                                    DemoSettings.sourceSystem,
                                                                    DemoSettings.cvKey,
                                                                    DemoSettings.cvEndpoint,
                                                                    DemoSettings.cvTrainingKey,
                                                                    DemoSettings.cvTrainingEndpoint,
                                                                    DemoSettings.cvPredectionKey,
                                                                    DemoSettings.cvPredectionEndpoint);

            Console.WriteLine($"Creating or getting existent workspace for user: ({DemoSettings.ownerId})");

            var workspace = await wm.GetWorkspaceAsync(DemoSettings.ownerId, true);

            Console.WriteLine($"*** Workspace created/retrieved successfully with id: ({workspace.id})");

            Console.WriteLine("Staring to generate workspace files and regions locally and save them to the workspace");

            var sampleData = GetSampleDate();

            wm.AddTrainingFiles(sampleData);

            Console.WriteLine("Preparing the workspace for training by uploading the data to custom vision");

            //await wm.PrepareWorkspaceForTraining();

            Console.WriteLine($"*** Data upload to custom vision finished successfully and project ready for training. New custom vision project id is {workspace.CustomVisionProjectId}");

            Console.WriteLine("Starting the training process. This will end with a generated models uploaded to storage");

            var isTrainingCompleted = await wm.TrainPreparedWorkspace();

            Console.WriteLine("*** Training of model completed successfully. Model was also exported and saved to the storage");

            Console.WriteLine("Getting the download links for the offline models: ONNX, CoreML and TensorFlow:");

            string downloadModelUrl = wm.GetModelDownloadUri(OfflineModelType.CoreML);

            Console.WriteLine($"CoreML Download Link: {downloadModelUrl}");

            downloadModelUrl = wm.GetModelDownloadUri(OfflineModelType.TensorFlow);

            Console.WriteLine($"TensorFlow Download Link: {downloadModelUrl}");

            downloadModelUrl = wm.GetModelDownloadUri(OfflineModelType.ONNX);

            Console.WriteLine($"ONNX Download Link: {downloadModelUrl}");

            Console.WriteLine("****************************************");

            Console.WriteLine("*** Test simulation completed successfully! ***");
        }
        public static async Task <ODMWorkspaceManager> SetWorkspaceManager(string ownerId, bool createIfNotFound)
        {
            var storageName = await GlobalSettings.GetKeyValue("storageName", false);

            var storageKey = await GlobalSettings.GetKeyValue("storageKey", false);

            var dbEndpoint = await GlobalSettings.GetKeyValue("dbEndpoint", false);

            var dbPrimaryKey = await GlobalSettings.GetKeyValue("dbPrimaryKey", false);

            var dbName = await GlobalSettings.GetKeyValue("dbName", false);

            var sourceSystem = await GlobalSettings.GetKeyValue("sourceSystem", false);

            var cvKey = await GlobalSettings.GetKeyValue("cvKey", false);

            var cvEndpoint = await GlobalSettings.GetKeyValue("cvEndpoint", false);

            var cvTrainingKey = await GlobalSettings.GetKeyValue("cvTrainingKey", false);

            var cvTrainingEndpoint = await GlobalSettings.GetKeyValue("cvTrainingEndpoint", false);

            var cvPredectionKey = await GlobalSettings.GetKeyValue("cvPredectionKey", false);

            var cvPredectionEndpoint = await GlobalSettings.GetKeyValue("cvPredectionEndpoint", false);

            return(ODMWorkspaceManager.Initialize(createIfNotFound, ownerId, storageName, storageKey, dbEndpoint, dbPrimaryKey, dbName, sourceSystem, cvKey, cvEndpoint, cvTrainingKey, cvTrainingEndpoint, cvPredectionKey, cvPredectionEndpoint));
        }