Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        /// <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);
        }