Пример #1
0
        public bool checkSaveConditions()
        {
            DateTime lastSave    = Serialization.deserializeLastSaveDate(false);
            TimeSpan elapsedTime = DateTime.Now - lastSave;

            return(verifieSiTempsEstEcoule(RemainingTime));
        }
Пример #2
0
        public DateTime InitNextSave()
        {
            DateTime controlDate = Serialization.deserializeLastSaveDate(true);

            if (controlDate.Year == 2000)
            {
                //planifie la prochaine sauvegarde ce jour-ci
                var inter = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, c.heure, c.minute, 0);
                nextSave = inter;
                return(nextSave);
            }

            //planifie la prochaine sauvegarde en fonction des paramètres de configuration
            nextSave = controlDate.AddDays(c.period).AddHours(-controlDate.Hour + c.heure).AddMinutes(-controlDate.Minute + c.minute).AddSeconds(-controlDate.Second);

            //si la date de prochaine sauvegarde est dépassée ou si la dernière sauvegarde est incomplète ou introuvable
            //if ((nextSave < DateTime.Now) || verifieSiTerminee() == '0')
            if (nextSave < DateTime.Now)
            {
                nextSave = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, c.heure, c.minute, 0);
                if (nextSave.CompareTo(DateTime.Now) < 0)
                {
                    nextSave.AddDays(1);
                    //this.lbDateProchaineSauvegarde1.Text = this.nextSave.ToShortDateString() + " à " + this.nextSave.ToShortTimeString();
                    Log.Write("Date de sauvegarde dépassée ou sauvegarde incomplete, réinitialisation de la date de la prochaine sauvegarde, nouvelle valeur: " + this.nextSave.ToString());
                    return(nextSave);
                }
            }
            return(nextSave);
        }
Пример #3
0
        public DateTime initNextSave()
        {
            DateTime d        = Serialization.deserializeLastSaveDate(true);
            DateTime nextSave = d.AddDays(c.getPeriode()).AddHours(-d.Hour + c.getHeure()).AddMinutes(-d.Minute + c.getMinute()).AddSeconds(-d.Second);

            return(nextSave);
        }
Пример #4
0
        public bool checkSaveConditions()
        {
            DateTime lastSave = Serialization.deserializeLastSaveDate(false);
            int      heure    = Convert.ToInt32(this.c.getHeure());
            int      minute   = Convert.ToInt32(this.c.getMinute());
            int      period   = Convert.ToInt32(this.c.getPeriode());
            bool     check    = false;

            try
            {
                this.tempsRestant = this.nextSave - DateTime.Now;
                TimeSpan tempsEcoule = DateTime.Now - lastSave;
                //this.checkNextSaveDate();

                /* if (this.tempsRestant.Days == 0 && this.tempsRestant.Hours < 15)
                 * {
                 *   ShutdownBlockReasonCreate(frm.Handle, "Une sauvegarde automatique va être éffectuée à " + this.nextSave.ToShortTimeString() + "." + Environment.NewLine + " Veuillez ne pas éteindre l'ordinateur");
                 * }
                 * else
                 * { shutdownBlockReasonDestroy(frm.Handle, "Arrêt autorisé"); } */

                //this.afficheAlerte();
                check = this.verifieSiTempsEstEcoule(tempsRestant);
            }
            catch { }
            return(check);
        }
Пример #5
0
        public char verifieSiTerminee()
        {
            char     ok = '0';
            DateTime dt = Serialization.deserializeLastSaveDate(false);

            //si le fichier de sauvegarde final éxiste et le backgroundWorker est inactif
            //sinon si le fichier de sauvegarde temporaire éxiste et que le backgroundworker est inactif
            //sinon si le fichier de sauvegarde temporaire éxiste et que le backgroundworker est actif
            if (Directory.Exists(ConfigurationManager.AppSettings["path"] + @"\" + dt.Day + "." + dt.Month + "." + dt.Year) && this.bgwk == null)
            {
                ok = '2';
            }
            else
            if (Directory.Exists(ConfigurationManager.AppSettings["path"] + @"\" + dt.Day + "." + dt.Month + "." + dt.Year + ".tmp") && this.bgwk == null)
            {
                ok = '0';
            }
            else
            if (Directory.Exists(ConfigurationManager.AppSettings["path"] + @"\" + dt.Day + "." + dt.Month + "." + dt.Year + ".tmp") && this.bgwk != null)
            {
                ok = '1';
            }

            Serialization.serializeEtatDerniereSave(ok);

            return(ok);
        }
Пример #6
0
        //Lorsque la sauvegarde est terminée
        private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            backgroundWorker.Dispose();
            backgroundWorker.CancelAsync();

            mainform.setLbEtatDerniereSauvegarde();
            DateTime      lastSave = Serialization.deserializeLastSaveDate(false);
            Configuration c        = new Configuration();

            //reinitialisation de la date de la prochaine sauvegarde
            DateTime d = s.initNextSave();

            Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Réinitialisation de la date de la prochaine sauvegarde, nouvelle valeur: " + d.ToString());
            this.mainform.setLbDateProchaineSauvegarde(d);

            //suppression des anciennes sauvegardes
            if (c.getNbSaves() != 0)
            {
                s.checkSaveNumber();
            }

            //Création et envoi du mail de fin de sauvegarde
            Mailer m = new Mailer(this.s);

            m.sendNotificationSauvegarde();
            s.setNbFichiersCopies(0);

            if (c.getAutoShutDown() == '1')
            {
                //Arret de l'ordinateur
                System.Diagnostics.ProcessStartInfo restart = new System.Diagnostics.ProcessStartInfo("shutdown.exe", "-s -t 60");
                System.Diagnostics.Process.Start(restart);
            }
            else
            {
                MessageBox.Show("Sauvegarde terminée.");
                Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Sauvegarde terminée");
                Application.Restart();
            }
            Close();
        }
Пример #7
0
        public MainForm()
        {
            InitializeComponent();
            Log.write("- " + DateTime.Now.ToShortDateString() + DateTime.Now.ToShortTimeString() + " Lancement de l'application");
            //chargement des paramètres de l'application
            this.c = new Configuration();
            //Chargement de la date de la derniere sauvegarde
            //initialisation de la date de la prochaine sauvegarde
            //report de la sauvegarde si la dernière sauvegarde ne s'est pas produite
            this.sauvegarde = new Save(this);
            //DateTime lastSave = Serialization.deserializeLastSaveDate(true);
            //this.nextSave = initNextSave(lastSave, this.c.getPeriode(), this.c.getHeure(), this.c.getMinute());
            //Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Réinitialisation de la date de la prochaine sauvegarde, nouvelle valeur: " + sauvegarde.GetNextSave().ToString());
            //sauvegarde.reportDateSauvegarde();
            //Vérifie si l'utilisateur à accès au répertoire de destination de la sauvegarde au lancement de l'application
            //si non, fermeture de l'application
            if (!(Serialization.deserializeLastSaveDate(false).Year == 2000))
            {
                try
                {
                    Directory.CreateDirectory(this.c.getPath() + @"/test");
                    Directory.Delete(this.c.getPath() + @"/test");
                }
                catch (IOException IOEx)
                {
                    this.launch = false;
                    MessageBox.Show("Il semble que vous n'êtes pas connecté au réseau AMF." + Environment.NewLine + "l'application va fermer.", "AUTOMOTOR Backup", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " : " + IOEx.Message);
                    Application.Exit();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("une erreur est survenue au lancement de l'application.", "AUTOMOTOR Backup", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " : " + ex.Message);
                }
            }

            //this.lbProchaineSauvegarde1.Visible = false;
            //this.lbCompteARebours.Visible = false;
            this.Text = "AUTOMOTOR Backup 2.0";
            this.lbUtilisateur1.Text = Environment.UserName;
            this.minimize();

            if (Serialization.deserializeLastSaveDate(false).Year == 2000)
            {
                this.lbDateProchaineSauvegarde1.ForeColor = Color.Red;
                this.lbDateProchaineSauvegarde1.Text      = "non planifiée";
            }
            else
            {
                this.lbDateProchaineSauvegarde1.Text = sauvegarde.GetNextSave().ToShortDateString() + " à " + sauvegarde.GetNextSave().ToShortTimeString();
            }


            //Configuration du Timer
            this.configureTimer();
            this.setLbEtatDerniereSauvegarde();
            //Appel de la fonction permettant le bloquage d'arrets Windows
            //ShutdownBlockReasonCreate(this.Handle, "Une sauvegarde automatique va être éffectuée.");

            //chargement de la valeur booléenne indiquant si l'autoLogon est activé en base de registre
            //Si l'AutoLogon est activé en base de registre Windows
            //Désactivation de l'autoLogon en base de registre Windows
            // mise à jour et sauvegarde de la valeur booléenne
            // suppression de la sauvegarde la plus ancienne si le nombre maxi de sauvegarde sera dépassé
            //lancement de la sauvegarde
            this.isAutoLogonEnabled = (bool)Serialization.deserialize();
            if (this.isAutoLogonEnabled == true)
            {
                Thread.Sleep(60000);
                RegistryModifier.disableAutoLogon();
                this.isAutoLogonEnabled = false;
                Serialization.serialize(this.isAutoLogonEnabled);
                this.initSaveViewer();
            }
        }
Пример #8
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);
        }