예제 #1
0
        /// <summary>
        /// Verifie si la config recupere en local est a jour
        /// </summary>
        /// <returns>si le checksum de la config local est egale au checksum de la config distante</returns>
        private async void CheckConfig()
        {
            // Config recuperé via l'Api;
            Config configRemote = await Api.GetConfigJson(Config.items.api, Config.items.conf.checksum)
                                  .ConfigureAwait(false);

            // Si l'API n'est pas joignable, on conserve la version stocké dans le rep %ALLUSERSPROFILE%
            if (configRemote == null)
            {
                NotifyUser("ERROR", "Echec Connexion", "Le fichier de configuration n'est pas disponible", false);
            }
            // Si l'Api nous renvoie une config
            else
            {
                // si config.remote.json est a jour
                if (configRemote.status.Equals("OKIDEM"))
                {
                    NotifyUser("INFO", "Configuration", "La configuration est déjà à jour", false);

                    // Valide la configuration récuperer
                    IsConfigUpdate = true;
                }

                // si config.remote.json est a mettre a jour
                else if (configRemote.status.Equals("OK"))
                {
                    NotifyUser("INFO", "Configuration", "Mise a jour de la config en local", false);

                    // Sauvegarde de la config API dans le %ALLUSERSPROFILE%;
                    Config.SaveConfig(allUserPath, configRemote);

                    // Lecture de la config du %ALLUSERSPROFILE%
                    Config = Config.getLocalFileConfig(allUserPath, exePath);

                    // Valide la configuration récuperer
                    IsConfigUpdate = true;
                    Log.Debug("Nouveau checksum: " + Config.items.conf.checksum);
                }

                // Si la config de l'api n'est pas valide
                else if (configRemote.status.Equals("KO"))
                {
                    NotifyUser("INFO", "Configuration", "La configuration de l'api n'est pas valide", false);
                }
            }
        }