private void enregistrer_config_Click(object sender, EventArgs e) { if (checkBox_activateBackup.Checked) { ConfigurationBackup backup = new ConfigurationBackup( checkBox_activateBackup.Checked, Convert.ToInt32(numericUpDown_generalLog.Value), Convert.ToInt32(numericUpDown_importLog.Value), Convert.ToInt32(numericUpDown_exportLog.Value), Convert.ToInt32(numericUpDown_importSuccess.Value), Convert.ToInt32(numericUpDown_importErreur.Value), Convert.ToInt32(numericUpDown_backupFiles.Value) ); backup.saveInfo(backup); Close(); } else { numericUpDown_generalLog.Enabled = false; numericUpDown_importLog.Enabled = false; numericUpDown_exportLog.Enabled = false; numericUpDown_importSuccess.Enabled = false; numericUpDown_importErreur.Enabled = false; numericUpDown_backupFiles.Enabled = false; ConfigurationBackup backup = new ConfigurationBackup( false, Convert.ToInt32(0), Convert.ToInt32(0), Convert.ToInt32(0), Convert.ToInt32(0), Convert.ToInt32(0), Convert.ToInt32(0) ); backup.saveInfo(backup); Close(); } }
public ConfigBackup() { InitializeComponent(); if (File.Exists(Directory.GetCurrentDirectory() + @"\SettingBackup.xml")) { ConfigurationBackup backup = new ConfigurationBackup(); backup.Load(); checkBox_activateBackup.Checked = backup.activate; numericUpDown_generalLog.Value = backup.general_Log; numericUpDown_importLog.Value = backup.import_Log; numericUpDown_exportLog.Value = backup.export_Log; numericUpDown_importSuccess.Value = backup.import_files_success; numericUpDown_importErreur.Value = backup.import_files_error; numericUpDown_backupFiles.Value = backup.backup_files; if (!checkBox_activateBackup.Checked) { numericUpDown_generalLog.Enabled = false; numericUpDown_importLog.Enabled = false; numericUpDown_exportLog.Enabled = false; numericUpDown_importSuccess.Enabled = false; numericUpDown_importErreur.Enabled = false; numericUpDown_backupFiles.Enabled = false; } } else { numericUpDown_generalLog.Enabled = false; numericUpDown_importLog.Enabled = false; numericUpDown_exportLog.Enabled = false; numericUpDown_importSuccess.Enabled = false; numericUpDown_importErreur.Enabled = false; numericUpDown_backupFiles.Enabled = false; } }
public Main() { InitializeComponent(); string version = new Connecteur_Info.ConnecteurInfo().Version; label3.Text = "Connecteur Sage v" + version + " \nImport et export de documents commerciaux."; labelVersion.Text = "Version : " + version; labelCopyright.Text = "Copyright © 2013 - 2022"; // Init Connecteur Info, Version and Database path in a file Init.Init init = new Init.Init(); if (init.isSettings()) { init.Load(); init.connecteurInfo.installation_dir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); init.saveInfo(); } else { init.connecteurInfo = new Connecteur_Info.ConnecteurInfo(); init.connecteurInfo.installation_dir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); init.saveInfo(); } Forms.ProgressDialog progressDialog = new Forms.ProgressDialog(); // Initialize the thread that will handle the background process Thread backgroundThread = new Thread( new ThreadStart(() => { //Loading General Settings if (progressDialog.InvokeRequired) { progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading General Settings....")); } for (int n = 0; n < 10; n++) { Thread.Sleep(1); progressDialog.UpdateProgress(n); } // Init database && tables Database.Database db = new Database.Database(); db.initTables(); Database.Model.Settings settings_ = db.settingsManager.get(db.connectionString, 1); if (settings_ != null) { //settings.configurationGeneral.general.showWindow == 5 ---> show software label_debugMode.Text = ((settings_.showWindow == 5) ? "Mode Débugage : Activé" : "Mode Débugage : Désactivé"); label_tarifaire.Text = ((settings_.priceType_active == 1 ? true : false) ? "Configuration Tarifaire : Activé" : "Config Tarifaire : Désactivé"); label_retraitement.Text = ((settings_.reprocess_active == 1 ? true : false) ? "Retraitement : Activé" : "Retraitement : Désactivé"); } else { try { using (Forms.GeneralConfig form = new Forms.GeneralConfig()) { form.ShowDialog(); } } // Récupération d'une possible SDKException catch (SDKException ex) { MessageBox.Show(ex.Message); } } //Loading Connexion Settings if (progressDialog.InvokeRequired) { progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Connexion Settings....")); } for (int n = 10; n < 20; n++) { Thread.Sleep(1); progressDialog.UpdateProgress(n); } Connexion.ConnexionSaveLoad conn_Settings = new ConnexionSaveLoad(); if (conn_Settings.isSettings()) { conn_Settings.Load(); label1.Text = "DSN ODBC : " + conn_Settings.configurationConnexion.ODBC.DNS; label2.Text = "DSN ODBC Nom : " + conn_Settings.configurationConnexion.ODBC.USER; label5.Text = "DSN SQL : " + conn_Settings.configurationConnexion.SQL.DNS; label9.Text = "DSN SQL Nom : " + conn_Settings.configurationConnexion.SQL.USER; } else { try { using (Forms.ConfigConnexion form = new Forms.ConfigConnexion()) { form.ShowDialog(); } } // Récupération d'une possible SDKException catch (SDKException ex) { MessageBox.Show(ex.Message); } } //Loading Import Settings if (progressDialog.InvokeRequired) { progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Import Settings....")); } for (int n = 20; n < 40; n++) { Thread.Sleep(1); progressDialog.UpdateProgress(n); } Config_Import.ConfigurationSaveLoad import_Settings = new Config_Import.ConfigurationSaveLoad(); if (import_Settings.isSettings()) { import_Settings.Load(); int cpt = 0; int count = -1; //Doc Export Achat //no config yet, so show désactivated only cpt = 0; count = 3; cpt += ((import_Settings.configurationImport.Doc_Achat.Commande.Activate == "true") ? 1 : 0); isDocAchatCommande = ((import_Settings.configurationImport.Doc_Achat.Commande.Activate == "true") ? true : false); cpt += ((import_Settings.configurationImport.Doc_Achat.DSADV.Activate == "true") ? 1 : 0); isDocAchatDESADV = ((import_Settings.configurationImport.Doc_Achat.DSADV.Activate == "true") ? true : false); cpt += ((import_Settings.configurationImport.Doc_Achat.Facture.Activate == "true") ? 1 : 0); isDocAchatFacture = ((import_Settings.configurationImport.Doc_Achat.Facture.Activate == "true") ? true : false); label2.Text = ((cpt == 0) ? "Document Achat d'import : désactivé" : "Document Achat d'import : " + cpt + "/" + count + " activé"); //Doc Export Vente cpt = 0; count = 3; cpt += ((import_Settings.configurationImport.Doc_Ventes.Commande.Activate == "true") ? 1 : 0); isDocVenteCommande = ((import_Settings.configurationImport.Doc_Ventes.Commande.Activate == "true") ? true : false); cpt += ((import_Settings.configurationImport.Doc_Ventes.DSADV.Activate == "true") ? 1 : 0); isDocVenteDESADV = ((import_Settings.configurationImport.Doc_Ventes.DSADV.Activate == "true") ? true : false); cpt += ((import_Settings.configurationImport.Doc_Ventes.Facture.Activate == "true") ? 1 : 0); isDocVenteFacture = ((import_Settings.configurationImport.Doc_Ventes.Facture.Activate == "true") ? true : false); label9.Text = ((cpt == 0) ? "Document Vente d'import : désactivé" : "Document Vente d'import : " + cpt + "/" + count + " activé"); // Stock cpt = 0; count = 1; cpt += ((import_Settings.configurationImport.Doc_Stock.Stock.Activate == "true") ? 1 : 0); isDocStock = ((import_Settings.configurationImport.Doc_Stock.Stock.Activate == "true") ? true : false); label11.Text = ((cpt == 0) ? "Document de stock import : désactivé" : "Document de stock import : " + cpt + "/" + count + " activé"); } else { try { using (ConfigImport form = new ConfigImport()) { form.ShowDialog(); } } // Récupération d'une possible SDKException catch (SDKException ex) { MessageBox.Show(ex.Message); } } // Loading Export Settings if (progressDialog.InvokeRequired) { progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Export Settings....")); } for (int n = 40; n < 60; n++) { Thread.Sleep(1); progressDialog.UpdateProgress(n); } Config_Export.ConfigurationSaveLoad export_Settings = new Config_Export.ConfigurationSaveLoad(); if (export_Settings.isSettings()) { export_Settings.Load(); int cpt = 0; int count = -1; //Doc Export Achat //no config yet, so show désactivated only cpt = 0; count = 3; label7.Text = ((cpt == 0) ? "Document Achat d'Export : désactivé" : "Document Achat d'Export : " + cpt + "/" + count + " activé"); groupBox_export_doc_achat.Enabled = ((cpt == 0) ? false : true); label_export_doc_achat.Text = ((cpt == 0) ? "Ces fonctionnalité ne sont pas accessible..." : "....."); //Doc Export Vente cpt = 0; count = 3; cpt += ((export_Settings.configurationExport.Commande.Activate) ? 1 : 0); cpt += ((export_Settings.configurationExport.DSADV.Activate) ? 1 : 0); cpt += ((export_Settings.configurationExport.Facture.Activate) ? 1 : 0); label8.Text = ((cpt == 0) ? "Document Vente d'Export : désactivé" : "Document Vente d'Export : " + cpt + "/" + count + " activé"); groupBox_export_doc_vente.Enabled = ((cpt == 0) ? false : true); label_groupBox_export_doc_vente.Text = ((cpt == 0) ? "la configuration est nécessaire. Veuillez vous rendre dans la configuration d'export et la remplir, merci..." : ""); // Stock cpt = 0; count = 1; cpt += ((export_Settings.configurationExport.Stock.Activate) ? 1 : 0); label10.Text = ((cpt == 0) ? "Document stock d'Export : désactivé" : "Document stock d'Export : " + cpt + "/" + count + " activé"); groupBox_export_doc_stock.Enabled = ((cpt == 0) ? false : true); label_export_doc_stock.Text = ((cpt == 0) ? "Veuillez vous rendre dans la configuration d'export et la remplir, merci..." : ""); } else { try { using (ConfExport form = new ConfExport()) { form.ShowDialog(); } } // Récupération d'une possible SDKException catch (SDKException ex) { MessageBox.Show(ex.Message); } } //Loading Backup Settings if (progressDialog.InvokeRequired) { progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Backup Settings....")); } for (int n = 60; n < 80; n++) { Thread.Sleep(1); progressDialog.UpdateProgress(n); } if (File.Exists(pathModule + @"\SettingBackup.xml")) { ConfigurationBackup backup = new ConfigurationBackup(); backup.Load(); label_backup_activation.Text = ((backup.activate) ? "Activation : Oui" : "Activation : Non"); label_backup_generalLog.Text = ((backup.general_Log != 0) ? "Log général : " + backup.general_Log + " jours" : "Log général : désactiver"); label_backup_importLog.Text = ((backup.import_Log != 0) ? "Log d'import : " + backup.import_Log + " jours" : "Log d'import : désactiver"); label_backup_exportLog.Text = ((backup.export_Log != 0) ? "Log d'export : " + backup.export_Log + " jours" : "Log d'export : désactiver"); label_backup_import_success.Text = ((backup.import_files_success != 0) ? "Fichier EDI import (Success) : " + backup.import_files_success + " jours" : "Fichier EDI import (Success) : désactiver"); label_backup_import_error.Text = ((backup.import_files_error != 0) ? "Fichier EDI import (Erreur) : " + backup.import_files_error + " jours" : "Fichier EDI import (Erreur) : désactiver"); label_fichier_backup.Text = ((backup.backup_files != 0) ? "Fichier EDI backup : " + backup.backup_files + " jours" : "Fichier EDI backup : désactiver"); } else { try { using (Forms.ConfigBackup form = new Forms.ConfigBackup()) { form.ShowDialog(); } } // Récupération d'une possible SDKException catch (SDKException ex) { MessageBox.Show(ex.Message); } } bool ok = false; for (int n = 80; n < 100; n++) { Thread.Sleep(1); progressDialog.UpdateProgress(n); if (n == 99) { ok = true; } ; } // Close the dialog if it hasn't been already if (ok && progressDialog.InvokeRequired) { progressDialog.BeginInvoke(new System.Action(() => progressDialog.Close())); string msg = "Vous pouvez réaliser l'import des documents commerciaux suivantes :\n\n"; msg += "Import des bons de commandes d'achat : " + ((isDocAchatCommande) ? "activé" : "désactivé") + "\n"; msg += "Import des bons de livraison d'achat : " + ((isDocAchatDESADV) ? "activé" : "désactivé") + "\n"; msg += "Import des factures d'achat : " + ((isDocAchatFacture) ? "activé" : "désactivé") + "\n\n"; msg += "Import des bons de commandes vente : " + ((isDocVenteCommande) ? "activé" : "désactivé") + "\n"; msg += "Import des bons de livraison vente : " + ((isDocVenteDESADV) ? "activé" : "désactivé") + "\n"; msg += "Import des factures vente : " + ((isDocVenteFacture) ? "activé" : "désactivé") + "\n\n"; msg += "Import des stock : " + ((isDocStock) ? "activé" : "désactivé") + "\n"; label4.Text = msg; } } )); // Start the background process thread backgroundThread.Start(); // Open the dialog progressDialog.ShowDialog(); }
private void cleanFiles(StreamWriter writer, string[,] directoriesList) { writer.WriteLine(DateTime.Now + " :: Fichier-De-Nettoyage.dll => cleanFiles()"); if (this.checkConfig(writer)) { ConfigurationBackup configBackup = new ConfigurationBackup(); configBackup.Load(); writer.WriteLine(DateTime.Now + " : cleanFiles() | Paramètres de nettoyage trouvés et chargés."); if (configBackup.activate) { Console.WriteLine("Cleaning settings are activated !"); writer.WriteLine(DateTime.Now + " :: Fichier-De-Nettoyage.dll => cleanFiles() | Paramètres de nettoyage activé."); writer.WriteLine(DateTime.Now + " :: Fichier-De-Nettoyage.dll => cleanFiles() | " + directoriesList.GetLength(0) + " dossiers à nettoyer :"); writer.Flush(); for (int x = 0; x < directoriesList.GetLength(0); x++) { writer.WriteLine(DateTime.Now + " :: Fichier-De-Nettoyage.dll => cleanFiles() | Type : " + directoriesList[x, 0] + " Répertoire : " + directoriesList[x, 1]); writer.Flush(); } writer.WriteLine(""); writer.Flush(); for (int x = 0; x < directoriesList.GetLength(0); x++) { switch (directoriesList[x, 0]) { case "general_logs": if (configBackup.general_Log > 0) { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs généraux dans le répertoir \"{directoriesList[x, 1]}\" ..."); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs généraux dans le répertoir \"{directoriesList[x, 1]}\" ..."); this.deleteOldFiles(writer, configBackup.general_Log, directoriesList[x, 1]); } else { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs généraux est désactivé!"); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs généraux est désactivé!"); } writer.WriteLine(""); writer.Flush(); break; case "import_logs": if (configBackup.import_Log > 0) { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'import dans le répertoir \"{directoriesList[x, 1]}\" ..."); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'import dans le répertoir \"{directoriesList[x, 1]}\" ..."); this.deleteOldFiles(writer, configBackup.import_Log, directoriesList[x, 1]); } else { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'import est désactivé!"); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'import est désactivé!"); } writer.WriteLine(""); writer.Flush(); break; case "export_Logs": if (configBackup.export_Log > 0) { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'export dans le répertoir \"{directoriesList[x, 1]}\" ..."); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'export dans le répertoir \"{directoriesList[x, 1]}\" ..."); this.deleteOldFiles(writer, configBackup.export_Log, directoriesList[x, 1]); } else { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'export est désactivé!"); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des logs d'export est désactivé!"); } writer.WriteLine(""); writer.Flush(); break; case "import_files_success": if (configBackup.import_files_success > 0) { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import OK dans le répertoir \"{directoriesList[x, 1]}\" ..."); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import OK dans le répertoir \"{directoriesList[x, 1]}\" ..."); this.deleteOldFiles(writer, configBackup.import_files_success, directoriesList[x, 1]); } else { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import OK est désactivé!"); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import OK est désactivé!"); } writer.WriteLine(""); writer.Flush(); break; case "import_files_error": if (configBackup.import_files_error > 0) { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import en erreur dans le répertoir \"{directoriesList[x, 1]}\" ..."); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import en erreur dans le répertoir \"{directoriesList[x, 1]}\" ..."); this.deleteOldFiles(writer, configBackup.import_files_error, directoriesList[x, 1]); } else { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import en erreur est désactivé!"); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers import en erreur est désactivé!"); } writer.WriteLine(""); writer.Flush(); break; case "backup_files": if (configBackup.backup_files > 0) { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers backup dans le répertoir \"{directoriesList[x, 1]}\" ..."); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers backup dans le répertoir \"{directoriesList[x, 1]}\" ..."); this.deleteOldFiles(writer, configBackup.backup_files, directoriesList[x, 1]); } else { Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers backup est désactivé!"); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Nettoyage des fichiers backup est désactivé!"); } writer.WriteLine(""); writer.Flush(); break; default: Console.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Paramètre inconnu \"{directoriesList[x, 0]}\" du répertoir \"{directoriesList[x, 1]}\"."); writer.WriteLine(""); writer.WriteLine(DateTime.Now + $" :: Fichier-De-Nettoyage.dll => cleanFiles() | Paramètre inconnu \"{directoriesList[x, 0]}\" du répertoir \"{directoriesList[x, 1]}\"."); writer.Flush(); break; } } } else { Console.WriteLine("Les paramètres de nettoyage sont désactivés !"); writer.WriteLine(""); writer.WriteLine(DateTime.Now + " :: Fichier-De-Nettoyage.dll => cleanFiles() | Les paramètres de nettoyage sont désactivés !"); } } else { Console.WriteLine("Les paramètres de nettoyage sont manquants !!!"); writer.WriteLine(""); writer.WriteLine(DateTime.Now + " :: Fichier-De-Nettoyage.dll => cleanFiles() | Les paramètres de nettoyage sont manquants !!!"); } writer.WriteLine(""); writer.Flush(); }
/// <summary> /// Gets a configuration backup. /// </summary> /// <param name="backupSpecification"></param> /// <param name="cancellationToken"></param> /// <returns>the configuration backup</returns> public async Task <ConfigurationBackup> BackupAsync(ConfigurationBackupSpecification backupSpecification, CancellationToken cancellationToken = default) { var configurationBackup = new ConfigurationBackup(); var progressReporter = ProgressReporter.StartNew(_logger); // AccountSettings if (backupSpecification.AccountSettings) { progressReporter.Notify("Account Settings"); progressReporter.StartSubTask("- Account Settings"); configurationBackup.AccountSettings = await GetAsync <AccountSettings>(cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Company Logo"); configurationBackup.CompanyLogo = Convert.ToBase64String(await GetImageByteArrayAsync(ImageType.CompanyLogo, cancellationToken).ConfigureAwait(false)); progressReporter.CompleteSubTaskAndStartNew("- Login Logo"); configurationBackup.LoginLogo = Convert.ToBase64String(await GetImageByteArrayAsync(ImageType.LoginLogo, cancellationToken).ConfigureAwait(false)); progressReporter.CompleteSubTaskAndStartNew("- Single Sign-on"); configurationBackup.SingleSignOn = await GetAsync <SingleSignOn>(cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- New user message template"); configurationBackup.NewUserMessageTemplate = await GetAsync <NewUserMessageTemplate>(cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Alerting if (backupSpecification.Alerting) { progressReporter.Notify("Alerting"); progressReporter.StartSubTask("- Alert Rules"); configurationBackup.AlertRules = await GetAllAsync <AlertRule>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Escalation Chains"); configurationBackup.EscalationChains = await GetAllAsync <EscalationChain>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- External alert destinations"); configurationBackup.ExternalAlertDestinations = await GetAllAsync <ExternalAlertDestination>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Message Template set"); configurationBackup.MessageTemplateSet = await GetMessageTemplatesAsync(cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Recipient Groups"); configurationBackup.RecipientGroups = await GetAllAsync <RecipientGroup>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Collectors if (backupSpecification.Collectors) { progressReporter.Notify("Collectors"); progressReporter.StartSubTask("- Collectors"); configurationBackup.Collectors = await GetAllAsync <Collector>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Dashboards if (backupSpecification.Dashboards) { progressReporter.Notify("Dashboards"); progressReporter.StartSubTask("- Dashboard Groups"); // Get with associated widgets populated configurationBackup.DashboardGroups = await GetAllAsync <DashboardGroup>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Dashboards"); configurationBackup.Dashboards = await GetAllAsync <Dashboard>().ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Widgets"); configurationBackup.Widgets = await GetAllAsync <Widget>().ConfigureAwait(false); progressReporter.StopSubTask(); } // Devices if (backupSpecification.Devices) { progressReporter.Notify("Devices"); progressReporter.StartSubTask("- Device Groups"); configurationBackup.DeviceGroups = await GetAllAsync <DeviceGroup>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Devices"); configurationBackup.Devices = await GetAllAsync <Device>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Integrations if (backupSpecification.Integrations) { progressReporter.Notify("Integrations"); progressReporter.StartSubTask("- Integrations"); configurationBackup.Integrations = await GetAllAsync <Integration>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // LogicModules // AppliesToFunctions if (backupSpecification.AppliesToFunctions) { progressReporter.Notify("AppliesToFunctions"); progressReporter.StartSubTask("- AppliesToFunctions"); configurationBackup.AppliesToFunctions = await GetAllAsync <AppliesToFunction>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // ConfigSources if (backupSpecification.ConfigSources) { progressReporter.Notify("ConfigSources"); progressReporter.StartSubTask("- ConfigSources"); configurationBackup.ConfigSources = await GetAllAsync <ConfigSource>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // DataSources if (backupSpecification.DataSources) { progressReporter.Notify("DataSources"); progressReporter.StartSubTask("- DataSources"); configurationBackup.DataSources = await GetAllAsync <DataSource>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- DataSource graphs"); configurationBackup.DataSourceGraphs = new List <DataSourceGraph>(); configurationBackup.DataSourceOverviewGraphs = new List <DataSourceGraph>(); configurationBackup.DataSourceDataPoints = new List <DataPointConfiguration>(); foreach (var dataSource in configurationBackup.DataSources) { var dataSourceGraphs = await GetDataSourceGraphsAsync(dataSource.Id, cancellationToken).ConfigureAwait(false); configurationBackup.DataSourceGraphs.AddRange(dataSourceGraphs); var dataSourceOverviewGraphs = (await GetDataSourceOverviewGraphsPageAsync(dataSource.Id, new Filter <DataSourceGraph> { Skip = 0, Take = 300 }, cancellationToken).ConfigureAwait(false)).Items; configurationBackup.DataSourceOverviewGraphs.AddRange(dataSourceOverviewGraphs); } progressReporter.StopSubTask(); } // EventSources if (backupSpecification.EventSources) { progressReporter.Notify("EventSources"); progressReporter.StartSubTask("- EventSources"); configurationBackup.EventSources = await GetAllAsync <EventSource>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // JobMonitors if (backupSpecification.JobMonitors) { progressReporter.Notify("JobMonitors"); progressReporter.StartSubTask("- JobMonitors"); configurationBackup.JobMonitors = await GetAllAsync <JobMonitor>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // PropertySources if (backupSpecification.PropertySources) { progressReporter.Notify("PropertySources"); progressReporter.StartSubTask("- PropertySources"); configurationBackup.PropertySources = await GetAllAsync <PropertySource>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // SnmpSysOidMaps if (backupSpecification.SnmpSysOidMaps) { progressReporter.Notify("SnmpSysOidMaps"); progressReporter.StartSubTask("- SnmpSysOidMaps"); configurationBackup.SnmpSysOidMaps = await GetAllAsync <SnmpSysOidMap>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Logs if (backupSpecification.Logs) { progressReporter.Notify("Logs"); progressReporter.StartSubTask("- Logs"); configurationBackup.LogItems = await GetLogItemsAsync(null, cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Netscans if (backupSpecification.Netscans) { progressReporter.Notify("Netscans"); progressReporter.StartSubTask("- Netscans"); configurationBackup.Netscans = await GetAllAsync <Netscan>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // OpsNotes if (backupSpecification.OpsNotes) { progressReporter.Notify("Ops Notes"); progressReporter.StartSubTask("- Ops Notes"); configurationBackup.OpsNotes = await GetAllAsync <OpsNote>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // SDTs if (backupSpecification.ScheduledDownTimes) { progressReporter.Notify("Scheduled Down Times"); progressReporter.StartSubTask("- Scheduled Down Times"); configurationBackup.ScheduledDownTimes = await GetAllAsync <ScheduledDownTime>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Websites if (backupSpecification.Websites) { progressReporter.Notify("Websites"); progressReporter.StartSubTask("- Website Groups"); configurationBackup.WebsiteGroups = await GetAllAsync <WebsiteGroup>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Websites"); configurationBackup.Websites = await GetAllAsync <Website>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // Users if (backupSpecification.Users) { progressReporter.Notify("Users and Roles"); progressReporter.StartSubTask("- RoleGroups"); configurationBackup.RoleGroups = await GetAllAsync <RoleGroup>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- UserGroups"); configurationBackup.Roles = await GetAllAsync <Role>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- UserGroups"); configurationBackup.UserGroups = await GetAllAsync <UserGroup>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.CompleteSubTaskAndStartNew("- Users"); configurationBackup.Users = await GetAllAsync <User>(cancellationToken : cancellationToken).ConfigureAwait(false); progressReporter.StopSubTask(); } // This one must be done last, to ensure that all retrieved data is sent to file if (backupSpecification.GzipFileInfo != null) { progressReporter.Notify("Save"); progressReporter.StartSubTask("- Writing to disk"); SerializeAndCompress(configurationBackup, backupSpecification.GzipFileInfo.FullName); progressReporter.StopSubTask(); } progressReporter.Stop(); return(configurationBackup); }