Exemple #1
0
        public void Rejoindre(string dossier)
        {
            var confSynchro = new ConfSynchro(_conf.NomClient, dossier);

            _fichierConfLocale = _dossierTamponSynchro + "\\." + _conf.NomClient + ".client";
            File.WriteAllText(_fichierConfLocale, JsonConvert.SerializeObject(confSynchro));
            _clients.Add(confSynchro);
        }
Exemple #2
0
        /// <summary>
        /// Constructeur
        /// </summary>
        /// <param name="nom">Nom de la synchro (correspond au nom du sous dossier dans le dossier tampon)</param>
        /// <param name="conf">Configuration</param>
        /// <param name="type">Type de synchro</param>
        public Synchro(string nom, Conf conf, TypeSynchro type)
        {
            ConfSynchro confClient, confMaitre;

            _type = type;
            _conf = conf;
            _nom  = nom;
            _dossierTamponSynchro = conf.DossierTampon + "\\" + Nom;
            _fichierConf          = _dossierTamponSynchro + "\\" + C.FICHIER_CONF_SYNCHRO;

            if (!Directory.Exists(conf.DossierTampon))
            {
                _valide        = false;
                _messageErreur = "Le dossier tampon n'existe pas.";
            }

            if (!_valide)
            {
                try
                {
                    Directory.CreateDirectory(_dossierTamponSynchro);
                }
                catch (Exception e)
                {
                    _valide        = false;
                    _messageErreur = "Impossible de créer le dossier tampon \"" + _dossierTamponSynchro + "\" (" + e.Message + ")";
                    Logger.Log(_messageErreur);
                }
            }

            if (_valide)
            {
                if (!File.Exists(_fichierConf))
                {
                    _valide        = false;
                    _messageErreur = "Le fichier de conf (" + _fichierConf + ") n'existe pas";
                    Logger.Log(_messageErreur);
                }
            }

            if (_valide)
            {
                confMaitre     = JsonConvert.DeserializeObject <ConfSynchro>(File.ReadAllText(_fichierConf));
                _maitre        = confMaitre.Client;
                _dossierSource = confMaitre.Chemin;

                if (File.Exists(_dossierTamponSynchro + "\\maitre.md5"))
                {
                    _nbFichiersMaitre = File.ReadAllLines(_dossierTamponSynchro + "\\maitre.md5").Length;
                }

                if (_type == TypeSynchro.Maitre)
                {
                    _dossier           = _dossierSource;
                    _confLocale        = confMaitre;
                    _fichierConfLocale = _fichierConf;
                }

                foreach (string fichierClient in Directory.GetFiles(_dossierTamponSynchro, "*.client"))
                {
                    confClient = JsonConvert.DeserializeObject <ConfSynchro>(File.ReadAllText(fichierClient));

                    if (File.Exists(_dossierTamponSynchro + "\\" + confClient.Client + ".md5"))
                    {
                        confClient.NbFichiers = File.ReadAllLines(_dossierTamponSynchro + "\\" + confClient.Client + ".md5").Length;
                    }
                    _clients.Add(new ConfSynchro(confClient.Client, confClient.Chemin, confClient.NbFichiers));

                    if (confClient.Client == _conf.NomClient && _type == TypeSynchro.Esclave)
                    {
                        _dossier           = confClient.Chemin;
                        _confLocale        = confClient;
                        _fichierConfLocale = fichierClient;
                    }
                }
                //Logger.Log(_clients["bip"]);
            }

            if (!Directory.Exists(_dossier))
            {
                _valide        = false;
                _messageErreur = "Le dossier à synchroniser n'existe pas.";
            }
        }