/// <summary> /// Start backup all workspace and reports /// </summary> /// <returns></returns> public bool RunAll() { var workspaces = PowerBIOperation.GetGroups().Result; var workspaceTasks = new List <Task>(); foreach (var workspace in workspaces) { workspaceTasks.Add(Task.Factory.StartNew(this.UploadReports, workspace)); } // Wait for all the tasks to finish. Task.WaitAll(workspaceTasks.ToArray()); return(true); }
private void UploadReportFile(object uploadSet) { var vm = (UploadSetViewModel)uploadSet; var file = PowerBIOperation.ExportReport(vm.Workspace.Id, vm.Report.Id).Result; if (file != null) { var datePostfix = BackupConfiguration.AddDatePostfix ? DateTime.Now.ToString("_yyyyMMdd") : ""; var timePostfix = BackupConfiguration.AddTimePostfix ? DateTime.Now.ToString("_HHmmss") : ""; string localPath = $"./{BackupConfiguration.Folder}/{vm.Workspace.Name}/{vm.Report.Name}/"; string fileName = $"{vm.Report.Name}{datePostfix}{timePostfix}.{BackupConfiguration.FileExtension}"; var blobResult = AzureBlobOperation.UploadBlobAsync(localPath, fileName, file).Result; } }
private void UploadReports(object group) { var workspace = (Group)group; var reports = PowerBIOperation.GetReports(workspace.Id); var reportTasks = new List <Task>(); foreach (var report in reports.Result) { // Start the thread with a ParameterizedThreadStart. UploadSetViewModel uploadSetViewModel = new UploadSetViewModel { Report = report, Workspace = workspace }; reportTasks.Add(Task.Factory.StartNew(this.UploadReportFile, uploadSetViewModel)); } // Wait for all the tasks to finish. Task.WaitAll(reportTasks.ToArray()); }