private void EnsureConfigLoaded()
        {
            if (configuration == null)
            {
                configuration = configStore.LoadConfigFromFile();

                TryLog("Loaded config from file");
            }
        }
        public ConfigStore(
            string modFolderName,
            string configFileName = DefaultConfigFileName,
            IXmlFileSystem <ModConfiguration> fileSystemWrapper = null)
        {
            this.fileSystemWrapper = fileSystemWrapper ?? new XmlFileSystem <ModConfiguration>(new FileSystemWrapper());

            var modFolderPath = GamePaths.GetModFolderPath(GameFolder.Configs);

            modFolderPath = Path.Combine(modFolderPath, modFolderName);

            this.fileSystemWrapper.CreateDirectory(modFolderPath);

            ConfigFileInfo = new FileInfo(Path.Combine(modFolderPath, configFileName));

            if (!this.fileSystemWrapper.FileExists(ConfigFileInfo))
            {
                SaveConfigToFile(new ModConfiguration());
            }

            cachedConfigs = LoadConfigFromFile();
        }
 public void SaveConfigToFile(ModConfiguration modConfiguration)
 {
     fileSystemWrapper.SaveObjectToFile(ConfigFileInfo, modConfiguration);
 }