// RECIP /INIT des fichiers de config


        #region Fichier de config d'entrée environnement et client a conserver.

        private XmlEnvironnementSession GetXmlEnvironnementSession(string sPath)
        {
            XmlEnvironnementSession xmlEnvironnementSession = null;

            if (File.Exists(sPath))
            {
                xmlEnvironnementSession = FastSerialisation.Instance().GetSaveStructInCurrentDirectory <XmlEnvironnementSession>(sPath);
                return(xmlEnvironnementSession);
            }
            else
            {
                GlobalLog.Instance().AjouteLog("SingleSessionConfig", "@GetXmlEnvironnementSession : Path n'EXISTE PAS : "******"", listEnvironnementExecutionDefault = new List <EnvironnementExecution>()
            };
            EnvironnementExecution environnementExecution = new EnvironnementExecution()
            {
                IsDefault = true, NomEnvironnement = "DEV1", listConnexionDB = new List <ConnexionDB>()
            };
            ConnexionDB connexionDB = new ConnexionDB()
            {
                NomConnectionBDD = "BDDProcess", ToConnect = true, ModeConnectionString = true, NomServeur = "FAUVEL-PORTABLE\\SQLEXPRESS", NomDB = "XXPackingProcessV3", NomModel = "BdModel.ModelDBxxProcessV3", ExtraConnectionStringOdbc = ""
            };

            environnementExecution.listConnexionDB.Add(connexionDB);
            environnementExecution.connexionServeurPrint = new ConnexionServeurPrint()
            {
                ToConnect = true, sServeurWCF = "127.0.0.1", pathConfigSerciceMoteur = "D:\\ServiceMoteurImpression\fichierini.config", IsMoteurOnThisHost = true, VersionGestionnaire = "V1", ListNomImprimanteToConnect = new List <string>()
            };
            environnementExecution.configWebInterface = new ConfigWebInterface()
            {
                ListeMenuVisibles = new List <string>(), ListeShortButton = new List <ConfigShortButton>()
            };
            environnementExecution.configWebInterface.ListeMenuVisibles.Add("showProcess");
            environnementExecution.configWebInterface.ListeMenuVisibles.Add("showPrinterData");
            environnementExecution.configWebInterface.ListeShortButton.Add(new ConfigShortButton()
            {
                BtnName = "TPrint", BtnClick = "Printer"
            });
            xmlEnvironnementSession.listEnvironnementExecutionDefault.Add(environnementExecution);

            string statutMes = FastSerialisation.Instance().SaveStructInCurrentDirectory <XmlEnvironnementSession>(xmlEnvironnementSession, sPath);

            SingleLogFileAsXml.Instance().AjouteLog("SingleSessionConfig", "@GetXmlEnvironnementSession : Config n'existe pas : creation : " + sPath + "   :  " + statutMes);
            return(xmlEnvironnementSession);
        }
        public string FirstInit()
        {
            ProjectClientName = "";

            string sPathBase = GetDirectoryFile();  // get répertoire racine pour les configs

            try {
                // exploration des répertoires et fichiers pour infos
                var    listDirectoryClient = Directory.GetDirectories(sPathBase).ToList();
                string sTemp     = "";
                string sTempFile = "";
                foreach (var d in listDirectoryClient)
                {
                    sTemp = d.Replace(sPathBase, "");
                    ClientRepertoire clientRepertoire = new ClientRepertoire()
                    {
                        NomRepertoire = sTemp, listFichiers = new List <string>()
                    };
                    var listFiles = Directory.GetFiles(d).ToList();
                    foreach (var f in listFiles)
                    {
                        sTempFile = f.Replace(d + "\\", "");
                        clientRepertoire.listFichiers.Add(sTempFile);
                    }
                    environnementGlobal.listClientRepertoire.Add(clientRepertoire);
                }

                // tentative de récupérations des 2 principaux fichiers de config au demarrage ConfigEnvironnementSession et ConfigEnvironnementClient s'il y a lieu
                string sPathMainConfig = sPathBase + "ConfigEnvironnementSession.xml";

                if (File.Exists(sPathMainConfig))
                {
                    GlobalLog.Instance().AjouteLog("SingleSessionConfig", "@FirstInit : Config Environnement Client EXISTE : " + sPathMainConfig);
                }
                else
                {
                    GlobalLog.Instance().AjouteLog("SingleSessionConfig", "@FirstInit : Config Environnement Client N'EXISTE PAS : "******"SingleSessionConfig", "@FirstInit : configEnvironnementSession OK / AutoStart : " + configEnvironnementSession.AutoStartSurClient + "/  client Name : " + configEnvironnementSession.AutoStartClientName);
                }
                else
                {
                    GlobalLog.Instance().AjouteLog("SingleSessionConfig", "@FirstInit : configEnvironnementSession = NULL !!");
                }

                if (configEnvironnementSession != null && configEnvironnementSession.AutoStartSurClient && !string.IsNullOrEmpty(configEnvironnementSession.AutoStartClientName))
                {
                    ProjectClientName = configEnvironnementSession.AutoStartClientName;

                    DummyModifMainEnvironnementConfig(configEnvironnementSession, sPathMainConfig); // pour mise a jour eventuelle

                    sPathBase = GetDirectoryFile(configEnvironnementSession.AutoStartClientName);
                    environnementProjet.ClientName = configEnvironnementSession.AutoStartClientName;
                    EnvironnementExecutionActif    = configEnvironnementSession.listEnvironnementExecutionDefault.Where(c => c.IsDefault).FirstOrDefault(); // set de l'environnement d'exécution actif
                    // Recup / Init des fichiers dans rep client..
                    // a ajuster en fonction utilité des fichiers
                    string sPathClientConfig = sPathBase + "ConfigEnvironnementClient.xml";
                    configEnvironnementClient = GetXmlConfigEnvironnementClient(sPathClientConfig);
                    if (configEnvironnementClient != null && configEnvironnementClient.listTypeFileConfigNeeded != null)
                    {
                        DummyModifClientEnvironnementConfig(configEnvironnementClient, sPathClientConfig); // pour mise a jour eventuelle

                        environnementProjet.IsClientSelectedOK       = true;
                        environnementProjet.listTypeFileConfigNeeded = new List <TypeFileConfigNeeded>();
                        environnementProjet.listTypeFileConfigNeeded.Add(new TypeFileConfigNeeded()
                        {
                            LibelleFile = "Config", TypeFileConfig = "XmlConfigEnvironnementClient", NameFileConfig = "ConfigEnvironnementClient.xml"
                        });
                        environnementProjet.listTypeFileConfigNeeded.AddRange(configEnvironnementClient.listTypeFileConfigNeeded);

                        foreach (var conf in configEnvironnementClient.listTypeFileConfigNeeded)
                        {
                            LoadConfigFile(conf);
                        }

                        var environnemntExecutionClient = configEnvironnementClient.listEnvironnementExecution.Where(c => c.IsDefault).FirstOrDefault(); // set de l'environnement d'exécution actif
                        if (environnemntExecutionClient != null)
                        {
                            EnvironnementExecutionActif = environnemntExecutionClient;
                        }
                    }
                }
                else
                {
                    GlobalLog.Instance().AjouteLog("SingleSessionConfig", "@FirstInit : Il n'y a pas de Config Environnement : " + sPathMainConfig);
                }
            }
            catch (Exception ex) {
                GlobalLog.Instance().AjouteLog("SingleSessionConfig", "@FirstInit : Exception : " + ex.Message);
            }
            return(ProjectClientName);
        }
        private XmlConfigEnvironnementClient GetXmlConfigEnvironnementClient(string sPath)
        {
            XmlConfigEnvironnementClient xmlConfigEnvironnementClient = null;

            if (File.Exists(sPath))
            {
                xmlConfigEnvironnementClient = FastSerialisation.Instance().GetSaveStructInCurrentDirectory <XmlConfigEnvironnementClient>(sPath);


                // Ajout nouvelles caractèristiques à fichier existant :
                bool ToSave = false;

                //foreach (var env in xmlConfigEnvironnementClient.listEnvironnementExecution) {
                //    if (env.listConnexionOrpheaWeb == null || (env.listConnexionOrpheaWeb != null && env.listConnexionOrpheaWeb.Count == 0)) {
                //        env.listConnexionOrpheaWeb = new List<ConnexionOrpheaWeb>();
                //        ConnexionOrpheaWeb con = new ConnexionOrpheaWeb() { ToConnect = false, UrlApi = "http://*****:*****@GetXmlEnvironnementSession : Config n'existe pas : creation : " + sPath + "   :  " + statutMes);
            return(xmlConfigEnvironnementClient);
        }