示例#1
0
        internal bool InjectGamesFo(ICollection <DataRep> games)
        {
            bool result = false;

            try
            {
                MeEmit mee = new MeEmit()
                {
                    ByPass = true,
                };
                mee.SignalWrite     += (x, y) => this.SetStatus(x, new StateArg(y, false));
                mee.SignalWriteLine += (x, y) => this.SetStatus(x, new StateArg(y, false));
                HeTrace.AddMessenger("Mee", mee);

                foreach (var game in games)
                {
                    InjectGame(game.CurrentPath);
                }

                result = true;
            }
            catch (Exception exc)
            {
                HeTrace.WriteLine(exc.Message);
                HeTrace.WriteLine(exc.StackTrace);
                result = false;
            }
            finally
            {
                HeTrace.RemoveMessenger("Mee");
            }
            return(result);
        }
示例#2
0
        // ---

        public override bool ExportGames(ICollection <DataRep> games)
        {
            bool result = false;

            try
            {
                MeEmit mee = new MeEmit()
                {
                    ByPass = true,
                };
                mee.SignalWrite     += (x, y) => this.SetStatus(x, new StateArg(y, false));
                mee.SignalWriteLine += (x, y) => this.SetStatus(x, new StateArg(y, false));
                HeTrace.AddMessenger("Mee", mee);

                foreach (var game in games)
                {
                    //string tmpPath = Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(game.Name));

                    ExportGame(game.CurrentPath);
                }
                result = true;
            }

            catch (Exception exc)
            {
                HeTrace.WriteLine(exc.Message);
                HeTrace.WriteLine(exc.StackTrace);
                result = false;
            }
            finally
            {
                HeTrace.RemoveMessenger("Mee");
            }
            return(result);
        }
示例#3
0
        /*
         *      internal void NewFindPivot()
         *      {
         *          for (int i = 0; i < ExtPlatformGames.Count; i++)
         *          {
         *              C_Game game = ExtPlatformGames[i];
         *
         *              // Gestion d'éventuelle erreur
         *              if (game.ApplicationPath == null)
         *                  continue;
         *
         *              // On passe les jeux déjà ok
         *              if (game.ApplicationPath.RelatPath.Contains(PlatformRelatPath))
         *                  continue;
         *
         *              string[] arr = game.ApplicationPath.RelatPath.Split(@"\");
         *
         *              // Test avec le nom de plateforme
         *              if (arr.Contains(PlatformToReplace))
         *              {
         *                  HeTrace.WriteLine($"[Pivot] OldObject choice");
         *                  var posPlatName = Array.LastIndexOf(arr, SelectedPlatform.Name);
         *                  ToReplace = String.Join(@"\", arr, 0, posPlatName + 1);
         *                  return;
         *              }
         *
         *              // Test pour essayer via le nom du système
         *              if (arr.Contains(SelectedPlatform.Name))
         *              {
         *                  HeTrace.WriteLine($"[Pivot] ObjectPlatfotme choice");
         *                  var posPlatName = Array.LastIndexOf(arr, SelectedPlatform.Name);
         *                  // Détermination de la position du nom de la plateforme
         *
         *                  ToReplace = String.Join(@"\", arr, 0, posPlatName + 1);
         *
         *                  return;
         *              }
         *
         *              // Voir si dossier null
         *              // On récupère le nom du dernier dossier de la plateforme
         *              string lastDir = Path.GetFileName(SelectedPlatform.Folder);
         *              if (!string.IsNullOrEmpty(SelectedPlatform.Folder) && game.ApplicationPath.RelatPath.Contains(lastDir))
         *              {
         *                  HeTrace.WriteLine($"[Pivot] Last folder from platform choice");
         *                  var posPlatName = Array.LastIndexOf(arr, lastDir);
         *                  ToReplace = String.Join(@"\", arr, 0, posPlatName - 1); // +1 Pour prendre aussi le dernier dossier
         *
         *                  return;
         *
         *              }
         *
         *              ToReplace = SelectedPlatform.Folder;
         *              HeTrace.WriteLine($"[Pivot] No predict");
         *          }
         *      }
         *
         *      /// <summary>
         *      ///
         *      /// <summary>
         *      /// <remarks>
         *      /// La prédiction est trop difficile, car il y a trop d'incertitudes.
         *      /// Remplacé par une vérification si le premier jeu à modifier contiendrait le nom du système pour déterminer la chaine à remplacer
         *      /// Si ce n'est pas le cas on ne mettra rien, il y a une boite pour choisir à la main le dossier
         *      /// </remarks>
         *      [Obsolete]
         *      internal void FindPivot()
         *      {
         *          // Mise en place du système pivot/tail, on donne un mot, on conservera ce qu'il y a après
         *
         *          // Récupération du premier qui n'a pas le bon chemin (pour travailler dessus)
         *          //C_Game chosenGame = null;
         *          for (int i = 0; i < ExtPlatformGames.Count; i++)
         *          {
         *              C_Game game = ExtPlatformGames[i];
         *
         *              // Gestion d'éventuelle erreur
         *              if (game.ApplicationPath == null)
         *                  continue;
         *
         *              // On passe les jeux déjà ok
         *              if (game.ApplicationPath.RelatPath.Contains(PlatformRelatPath))
         *                  continue;
         *
         *              string[] arr = game.ApplicationPath.RelatPath.Split(@"\");
         *
         *              // Test pour essayer via le nom du système
         *              if (arr.Contains(SelectedPlatform.Name))
         *              {
         *                  HeTrace.WriteLine($"[Pivot] ObjectPlatfotme choice");
         *                  var posPlatName = Array.IndexOf(arr, SelectedPlatform.Name);
         *                  // Détermination de la position du nom de la plateforme
         *
         *                  ToReplace = String.Join(@"\", arr, 0, posPlatName + 1);
         *
         *                  return;
         *              }
         *
         *              // Voir si dossier null
         *              // On récupère le nom du dernier dossier de la plateforme
         *              string lastDir = Path.GetFileName(SelectedPlatform.Folder);
         *              if (!string.IsNullOrEmpty(SelectedPlatform.Folder) && game.ApplicationPath.RelatPath.Contains(lastDir))
         *              {
         *                  HeTrace.WriteLine($"[Pivot] Last folder from platform choice");
         *                  var posPlatName = Array.IndexOf(arr, lastDir);
         *                  ToReplace = String.Join(@"\", arr, 0, posPlatName + 1); // +1 Pour prendre aussi le dernier dossier
         *                  return;
         *
         *              }
         *
         *              // Dernier cas on prend le premier application path qui ne correspond pas
         *              ToReplace = Path.GetDirectoryName(game.ApplicationPath.RelatPath);
         *              HeTrace.WriteLine("[Pivot] Last choice - Edit is strongly recommended");
         *              return;
         *          }
         *
         *          ToReplace = SelectedPlatform.Folder;
         *          HeTrace.WriteLine($"[Pivot] No predict");
         *      }*/

        #endregion

        private void PrepareInitializeGames()
        {
            TaskLauncher tl = new TaskLauncher()
            {
                AutoCloseWindow = true,
                ProgressIHM     = new Splash()
                {
                    Model = new EphemProgress(Core),
                },
                MethodToRun = () => Core.InitializeGames()
            };

            tl.Launch(Core);

            HeTrace.RemoveMessenger("mee");
        }
示例#4
0
        internal bool InjectGamesFi(ICollection <DataRep> games)
        {
            ProgressTotal = games.Count();
            try
            {
                MeEmit mee = new MeEmit()
                {
                    ByPass = true,
                };
                mee.SignalWrite     += (x, y) => this.SetStatus(x, new StateArg(y, false));
                mee.SignalWriteLine += (x, y) => this.SetStatus(x, new StateArg(y, true));
                HeTrace.AddMessenger("Mee", mee);

                List <DataRep> folders = new List <DataRep>();

                // Extraction des données
                foreach (DataRep game in games)
                {
                    string tmpPath = Path.Combine(Config.HWorkingFolder, Path.GetFileNameWithoutExtension(game.Name));
                    game.DestPath = tmpPath;

                    // extraction
                    ExtractDataFiles(game, tmpPath);

                    folders.Add(new DataRep(tmpPath));
                }

                // Exportation
                foreach (DataRep game in games)
                {
                    InjectGame(game.DestPath);
                }

                return(true);
            }
            catch (Exception exc)
            {
                HeTrace.WriteLine(exc.Message);
                HeTrace.WriteLine(exc.StackTrace);
                return(false);
            }
            finally
            {
                HeTrace.RemoveMessenger("Mee");
            }
        }
示例#5
0
 private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     HeTrace.RemoveMessenger("Debug");
 }
示例#6
0
 public void Dispose()
 {
     HeTrace.RemoveMessenger("Verbose");
     Properties.Settings.Default.cgpAddApp = Core.AddAppPaths;
     Properties.Settings.Default.Save();
 }
示例#7
0
 public void Dispose()
 {
     HeTrace.RemoveMessenger("Verbose");
 }