public bool CreateConfigConstantJS(ModeDeploiment dmD, string PathDirectory, string PATH_CONFIG_CONSTANT_JS)
        {
            bool result = false;

            _consoleService.ConsoleAddText("Copie et création d'un config.constant.js", 0);
            try
            {
                _backupFile.MoveFileToBackup(PathDirectory + PATH_CONFIG_CONSTANT_JS, "config.constant.js", PathDirectory);

                var containt = "angular.module(\"mobileGestionVisite\")\n";
                containt += "   .constant(\"config\", {\n";
                containt += "//------------------Generat by CordovaPackagesBuilder----------------------\n";
                containt += "       MAX_PICTURES: 3,\n";
                containt += "       APPLICATION_IDENT: \"FONCIA-GESTION-VISITE\",\n";
                containt += "       APPLICATION_IDENT_PHONE: \"FONCIA-GESTION-VISITE-SMARTPHONE\",\n";
                containt += "       VERSION_NAME:\"" + dmD.VersionName + "\",\n";
                containt += "       VERSION_IDENT:" + dmD.VersionIdent + ",\n";
                containt += "       PREPROD:" + (dmD.ModeName == "PREPROD").ToString().ToLower() + ",\n";
                containt += "       MEAP_URL:" + dmD.Url + "\n";
                containt += " });";
                StreamWriter ConfigConstantJs = new StreamWriter(PathDirectory + PATH_CONFIG_CONSTANT_JS, false, System.Text.Encoding.ASCII);
                ConfigConstantJs.Write(containt);
                ConfigConstantJs.Close();

                _consoleService.ConsoleAddText("fin de Copie et création d'un config.constant.js", 3);
                result = true;
            }
            catch (Exception e)
            {
                _consoleService.ConsoleAddText(e.ToString(), 2);
                result = false;
            }
            return(result);
        }
        public void StartGeneratedPakage(string plateform, string deploiment, string VersionIdent, string VersionCode, string VersionName, string PathDirectory, string PathPackageDirectory)
        {
            //on block le bouton pour générer le package
            _eventAggregator.GetEvent <IsBuildableEvent>().Publish(true);
            _pathdirectory        = PathDirectory;
            _pathPackageDirectory = PathPackageDirectory;
            _loggerService.SetPathLog(PathPackageDirectory);

            //--vérification des fichers si lecture seul--//
            if (!ReadOnlyFile(PathDirectory, new string[] { _config.PATH_CONFIG_XML, _config.PATH_CONFIG_CONSTANT_JS, _config.PATH_NEXWORD_MODULE_JS }))
            {
                //--instanciation d'un ModeDeploiment && ajout d'une platform--//
                ModeDeploiment MdDplt = _modeDeploimentService.CreateModeDeploid(deploiment, VersionName, VersionIdent, VersionCode);
                MdDplt  = _modeDeploimentService.AddPlatform(MdDplt, plateform);
                _mdDplt = MdDplt;
                //--création du dossier backup pour les fichiers d'origine--//
                _backupFile.CreateDirectory(PathDirectory, new string[] { @"\OldConfig" });

                if (UpdateFiles(MdDplt, PathDirectory))
                {
                    //--lancement de la cmd pour build le package--//
                    _cmdCordovaService.CMDExecute(PathDirectory, MdDplt.Cpackages[0].CordovaCmd, true);
                }
            }
        }
        private void MovePackage(ModeDeploiment mdd, string PathDirectory, string PathPackageDirectory)
        {
            var nameFolderpackage = @"\" + DateTime.Now.Date.ToString("yyyyMMdd") + "_FONCIA_VISITE_" + mdd.ModeName.ToUpper() + "_" + mdd.VersionIdent;

            string[] tFolder = new string[] { @"\LivraisonFoncia" + "_" + DateTime.Now.Date.ToString("yyyyMMdd") + "-" + DateTime.Now.Hour + DateTime.Now.Minute, @"\Version", @"\" + mdd.Cpackages[0].NamePlatform.ToUpper(), nameFolderpackage };

            _backupFile.CreateDirectory(PathPackageDirectory, tFolder);

            string pathPackage = PathPackageDirectory + string.Join("", tFolder);

            if (mdd.Cpackages[0].NamePlatform.ToLower() == "android")
            {
                MoveAndroidPackage(mdd, PathDirectory, pathPackage);
                Thread.Sleep(3000);
                _loggerService.ClosingLogger();
                File.Move(_pathPackageDirectory + @"\log\log.txt", pathPackage + @"\log-" + DateTime.Now.Second + ".txt");
            }
            else
            if (mdd.Cpackages[0].NamePlatform.ToLower() == "windows")
            {
                MoveWindowsPackage(mdd, PathDirectory, pathPackage);
                _loggerService.ClosingLogger();
                File.Move(_pathPackageDirectory + @"\log\log.txt", pathPackage + @"\log-" + DateTime.Now.Second + ".txt");
            }

            _eventAggregator.GetEvent <IsBuildableEvent>().Publish(false);
        }
        public bool UpdateNexworldModuleJs(ModeDeploiment mdd, string PathDirectory, string PATH_NEXWORD_MODULE_JS)
        {
            _consoleService.ConsoleAddText("Copie et modification du nexworld.module.js", 0);
            bool result = false;

            try
            {
                _backupFile.MoveFileToBackup(PathDirectory + PATH_NEXWORD_MODULE_JS, "nexworld.module.js", PathDirectory);

                string text = File.ReadAllText(PathDirectory + PATH_NEXWORD_MODULE_JS);
                if (mdd.Cpackages[0].NamePlatform == "android")
                {
                    text = text.Replace("return TABLET", "return PHONE");
                }
                if (mdd.Cpackages[0].NamePlatform == "windows")
                {
                    text = text.Replace("return PHONE", "return TABLET");
                }
                File.WriteAllText(PathDirectory + PATH_NEXWORD_MODULE_JS, text);

                _consoleService.ConsoleAddText("fin de Copie et modification du nexworld.module.js", 3);

                result = true;
            }
            catch (Exception ex)
            {
                _consoleService.ConsoleAddText(ex.ToString(), 2);
                result = false;
            }

            return(result);
        }
        private void MoveWindowsPackage(ModeDeploiment mdd, string PathDirectory, string PathPackageDirectory)
        {
            var repositoryWindowsPackageInSolution = PathDirectory + mdd.Cpackages[0].Path_appli_generate + mdd.VersionName + "_x86_Test";
            var fileappxupload = "\\CordovaApp.Windows_" + mdd.VersionName + "_x86.appxupload";

            MoveDirectoryAndFilePackage(repositoryWindowsPackageInSolution,
                                        PathPackageDirectory + "\\CordovaApp.Windows_" + mdd.VersionName + "_x86_Test",
                                        PathDirectory + mdd.Cpackages[0].Path_appli_generate + mdd.VersionName + "_x86.appxupload",
                                        PathPackageDirectory + fileappxupload);
        }
        public ModeDeploiment AddPlatform(ModeDeploiment mdd, string platform)
        {
            var     JDeploiment = JObject.Parse(_config.CONFIG_JSON.GetValue(mdd.ModeName.ToLower()).ToString());
            var     Json        = JObject.Parse(JDeploiment.GetValue(platform).ToString());
            Package pk          = new Package(platform, Json.GetValue("appli_name").ToString(), Json.GetValue("package_name").ToString(), Json.GetValue("deviceType").ToString(), Json.GetValue("cordova_cmd").ToString(), Json.GetValue("path_appli_generate").ToString());

            mdd.Cpackages.Add(pk);

            return(mdd);
        }
        public bool UpdateConfigXml(ModeDeploiment dmD, string PathDirectory, string PATH_CONFIG_XML)
        {
            bool result;

            _consoleService.ConsoleAddText("écriture du config.xml", 0);
            _backupFile.MoveFileToBackup(PathDirectory + PATH_CONFIG_XML, "config.xml", PathDirectory);
            try
            {
                var ConfigXml = XDocument.Load(Path.Combine(PathDirectory + PATH_CONFIG_XML));
                var widget    = ConfigXml.Elements().SingleOrDefault();
                var version   = widget.Attribute("version");
                version.SetValue(dmD.VersionName);
                var elements = widget.Elements();
                if (dmD.Cpackages[0].NamePlatform == "android")
                {
                    var package_platform = widget.Attributes("android-packageName").SingleOrDefault();
                    package_platform.Value = dmD.Cpackages[0].NamePackage;
                    var android_versionCode = widget.Attributes("android-versionCode").SingleOrDefault();
                    if (dmD.VersionCode == "000000")
                    {
                        android_versionCode.Value = (int.Parse(android_versionCode.Value) + 1).ToString();
                    }
                    else
                    {
                        android_versionCode.Value = dmD.VersionCode;
                    }
                }
                else if (dmD.Cpackages[0].NamePlatform == "windows")
                {
                    var packageWindows = widget.Attribute("windows-packageVersion");
                    packageWindows.SetValue(dmD.VersionName);
                    var package_platform = widget.Attributes("id").SingleOrDefault();
                    package_platform.Value = dmD.Cpackages[0].NamePackage;
                }

                var name = widget.Elements().First <XElement>();
                if (name != null)
                {
                    name.SetValue(dmD.Cpackages[0].NameApli);
                }

                ConfigXml.Save(Path.Combine(PathDirectory + PATH_CONFIG_XML));
                _consoleService.ConsoleAddText("fin de l'écriture config.xml", 3);
                result = true;
            }
            catch (Exception e)
            {
                var message = e.ToString();
                _consoleService.ConsoleAddText(message, 2);
                result = false;
            }

            return(result);
        }
        public ModeDeploiment CreateModeDeploid(string deploiment, string VersionName, string VersionIdent, string VersionCode)
        {
            var Mdplt       = new ModeDeploiment(deploiment.ToUpper());
            var JDeploiment = JObject.Parse(_config.CONFIG_JSON.GetValue(deploiment).ToString());

            Mdplt.Url          = JDeploiment.GetValue("URL").ToString();
            Mdplt.VersionIdent = VersionIdent;
            Mdplt.VersionName  = VersionName;
            Mdplt.VersionCode  = VersionCode;

            return(Mdplt);
        }
        private bool UpdateFiles(ModeDeploiment mdd, string PathDirectory)
        {
            var  result   = false;
            bool xml      = _updateFileService.UpdateConfigXml(mdd, PathDirectory, _config.PATH_CONFIG_XML);
            bool constant = _updateFileService.CreateConfigConstantJS(mdd, PathDirectory, _config.PATH_CONFIG_CONSTANT_JS);
            bool module   = _updateFileService.UpdateNexworldModuleJs(mdd, PathDirectory, _config.PATH_NEXWORD_MODULE_JS);

            if (xml && constant && module)
            {
                result = true;
            }

            return(result);
        }
 private void RestaurationOriginFiles(string PathDirectory, ModeDeploiment dmD)
 {
     if (dmD.Cpackages[0].NamePlatform == "android")
     {
         var ConfigXml           = XDocument.Load(Path.Combine(PathDirectory + "/OldConfig" + "/Old.config.xml"));
         var widget              = ConfigXml.Elements().SingleOrDefault();
         var android_versionCode = widget.Attributes("android-versionCode").SingleOrDefault();
         if (dmD.VersionCode == "000000")
         {
             android_versionCode.Value = (int.Parse(android_versionCode.Value) + 1).ToString();
         }
         else
         {
             android_versionCode.Value = dmD.VersionCode;
         }
         _versionCode = android_versionCode.Value;
         ConfigXml.Save(Path.Combine(PathDirectory + "/OldConfig" + "/Old.config.xml"));
     }
     _backupFile.RemoveOldFile(_config.PATH_CONFIG_XML, "config.xml", PathDirectory);
     _backupFile.RemoveOldFile(_config.PATH_CONFIG_CONSTANT_JS, "config.constant.js", PathDirectory);
     _backupFile.RemoveOldFile(_config.PATH_NEXWORD_MODULE_JS, "nexworld.module.js", PathDirectory);
 }
 private void MoveAndroidPackage(ModeDeploiment mdd, string PathDirectory, string PathPackageDirectory)
 {
     MoveFiledPackage(PathDirectory + mdd.Cpackages[0].Path_appli_generate, PathPackageDirectory + "\\android-release_" + mdd.VersionIdent + "-" + mdd.ModeName.ToLower() + ".apk");
     File.Create(PathPackageDirectory + "/" + _versionCode + ".txt");
     _cmdCordovaService.CMDExecute(_config.Aapt, " aapt.exe dump badging " + PathPackageDirectory + "\\android-release_" + mdd.VersionIdent + "-" + mdd.ModeName.ToLower() + ".apk", false);
 }