Пример #1
0
        public void saveConfig()
        {
            //ouverture du fichier de configuration
            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            //sauvegarde de l'heure de la sauvegarde
            //sauvegarde de la minute de la sauvegarde
            //sauvegarde du chemin du repertoire de destination de la sauvegarde
            //sauvegarde de l'intervalle en jours entre 2 sauvegardes
            config.AppSettings.Settings.Remove("heure");
            config.AppSettings.Settings.Add("heure", this.tbHour.Text);
            config.AppSettings.Settings.Remove("minute");
            config.AppSettings.Settings.Add("minute", this.tbMinutes.Text);
            config.AppSettings.Settings.Remove("path");
            config.AppSettings.Settings.Add("path", this.tbPath.Text);
            config.AppSettings.Settings.Remove("period");
            config.AppSettings.Settings.Add("period", this.NUDInterval.Value.ToString());
            //si la zone de texte permettant de changer le mot de passe est visible
            //sauvegarde du mot de passe
            if (this.tbConfirmMDP.Visible == true)
            {
                config.AppSettings.Settings.Remove("password");
                config.AppSettings.Settings.Add("password", this.tbMDP.Text);
            }
            //si la zone de texte permettant de changer le mot de passe administrateur est visible
            //sauvegarde du mot de passe administrateur
            if (this.tbConfirmMDPAdmin.Visible == true)
            {
                Security sec = new Security();
                config.AppSettings.Settings.Remove("passwordAdmin");
                config.AppSettings.Settings.Add("passwordAdmin", sec.toCaesar(this.tbMDPAdmin.Text, 15));
                Serialization.serializeMDPAdmin(sec.toCaesar(this.tbMDPAdmin.Text, 15));
            }
            //sauvegarde du nombre de sauvegardes à conserver
            config.AppSettings.Settings.Remove("nbSaves");
            config.AppSettings.Settings.Add("nbSaves", this.numericUpDown1.Value.ToString());

            //sauvegarde des paramètres d'envoi de mails
            config.AppSettings.Settings.Remove("from");
            config.AppSettings.Settings.Remove("MDPFrom");
            config.AppSettings.Settings.Remove("SMTP");
            config.AppSettings.Settings.Remove("port");
            config.AppSettings.Settings.Remove("to");
            config.AppSettings.Settings.Remove("SSL");
            config.AppSettings.Settings.Add("from", this.tbFrom.Text);
            config.AppSettings.Settings.Add("MDPfrom", this.tbMDPFrom.Text);
            config.AppSettings.Settings.Add("SMTP", this.tbSMTP.Text);
            config.AppSettings.Settings.Add("port", this.tbPort.Text);
            config.AppSettings.Settings.Add("to", this.tbTo.Text);
            if (this.cbSSL.Checked)
            {
                config.AppSettings.Settings.Add("SSL", "1");
            }
            else
            {
                config.AppSettings.Settings.Add("SSL", "0");
            }

            ConfigurationManager.RefreshSection("appSettings");
            config.Save(ConfigurationSaveMode.Modified);
            Serialization.deserializeLastSaveDate(true);
        }
Пример #2
0
        public void execute(BackgroundWorker bgw)
        {
            //Envoi de mail en début de sauvegarde
            try
            {
                Mailer m = new Mailer(this);
                m.sendNotificationDebut();
                Log.notifieDebutSauvegarde();
            }
            catch (Exception e)
            {
                Log.write("- " + DateTime.Now.ToShortDateString() + DateTime.Now.ToShortTimeString() + ": " + e.Message + "/n");
            }

            //Mise à de la date de dernière sauvegarde
            Serialization.serializeLastSaveDate(DateTime.Now);

            //chargement de la liste des fichiers à sauvegarder
            ArrayList pathesList = (ArrayList)Serialization.deserializeXML("folders.xml");
            string    path       = this.saveRoot + @".tmp";

            //création du dossier de sauvegarde de l'utilisateur
            try
            {
                if (Directory.Exists(path))
                {
                    Directory.Delete(path, true);
                }
                if (Directory.Exists(this.saveRoot))
                {
                    Directory.Delete(this.saveRoot, true);
                }
                Directory.CreateDirectory(path);
            }
            catch (UnauthorizedAccessException uae)
            {
                MessageBox.Show(uae.Message + Environment.NewLine + "veuillez le supprimer manuellement");
            }

            //construction du chemin de sauvegarde des fichiers et copie des fichiers
            foreach (string s in pathesList)
            {
                try
                {
                    if (!this.bgwk.CancellationPending)
                    {
                        string savedDirPath = "";
                        savedDirPath += path + @"\" + this.toSavedFilePathFormat(s);
                        if (!Directory.Exists(savedDirPath))
                        {
                            Directory.CreateDirectory(savedDirPath);
                        }
                        this.copyFiles(s, this.bgwk);
                    }
                    else
                    {
                        break;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

            try
            {
                Log.notifieFinSauvegarde();
                Directory.Move(this.saveRoot + @".tmp", this.saveRoot);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                Log.write(e.Message);
            }
        }