Ejemplo n.º 1
0
        static void UpdateTrackedGameSystemData(Dictionary <string, string> checkedGamesData)
        {
            string[] fileArray = Directory.GetFiles(gameSystemDataDirectory, "*.json");
            foreach (var filename in fileArray)
            {
                string     urlSuffix;
                GameSystem newGameSystem;
                GameSystem oldGameSystem;

                try
                {
                    using (StreamReader r = new StreamReader(Path.Combine(gameDataDirectory, filename)))
                    {
                        var json = r.ReadToEnd();
                        oldGameSystem = JsonConvert.DeserializeObject <GameSystem>(json);
                        urlSuffix     = oldGameSystem.UrlSuffix;
                        newGameSystem = new GameSystem(urlSuffix, checkedGamesData);
                    }
                    if (!oldGameSystem.Equals(newGameSystem))
                    {
                        newGameSystem.WriteDifferencesInGames(oldGameSystem);
                        newGameSystem.SaveData();
                    }
                }
                catch (FileNotFoundException)
                {
                    FileNotFoundHandler.AbortProgramToDueMissingCriticalFile(filename, gameDataDirectory);
                }
            }
        }
Ejemplo n.º 2
0
        static void UpdateTrackedGameData(ref Dictionary <string, string> checkedGamesData,
                                          ref Dictionary <string, string> changedGamesData)
        {
            string[] fileArray = Directory.GetFiles(gameDataDirectory, "*.json");
            foreach (var absoluteFileName in fileArray)
            {
                var  urlNumber    = absoluteFileName.Split(' ').Last().Replace(".json", "");
                var  baseFileName = Path.GetFileName(absoluteFileName);
                var  url          = $"/Game/{urlNumber}";
                var  newGame      = new Game(url);
                Game oldGame;

                try
                {
                    using (StreamReader r = new StreamReader(Path.Combine(gameDataDirectory, absoluteFileName)))
                    {
                        var json = r.ReadToEnd();
                        oldGame = JsonConvert.DeserializeObject <Game>(json);
                    }
                    if (!oldGame.Equals(newGame))
                    {
                        var newFileLocation = Path.Combine(gameDataDirectory, "outdated", baseFileName);
                        if (File.Exists(newFileLocation))
                        {
                            File.Delete(newFileLocation);
                            Console.WriteLine($"The file {newFileLocation} has been updated, even though it should no " +
                                              $"longer be relevant. Please ensure that this file is not relevant.");
                        }
                        File.Move(absoluteFileName, newFileLocation);
                        newGame.WriteDifferencesInGames(oldGame);
                        changedGamesData[url] = newGame.Name;
                        newGame.SaveData();
                    }
                    else if (newGame.TotalRetroRatioPoints != oldGame.TotalRetroRatioPoints)
                    {
                        newGame.SaveData();
                    }
                }
                catch (FileNotFoundException)
                {
                    FileNotFoundHandler.AbortProgramToDueMissingCriticalFile(absoluteFileName, gameDataDirectory);
                }

                checkedGamesData[url] = newGame.Name;
            }
        }