using BeatSaber_Versions.controller.helper; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; namespace BeatSaber_Versions.controller { internal class Config { public Config() { VersionConfigDict c = new VersionConfigDict(); if (!ConfigFile.isConfigFileThere(Storage.ConfigPath)) { c = ConfigFile.createEmptyConfig(); Storage.Config = c; writeConfig(); } else { readConfig(); } } public void readConfig() { var deserializer = new DeserializerBuilder() .WithNamingConvention(UnderscoredNamingConvention.Instance) .Build(); string yml = File.ReadAllText(Storage.ConfigPath); try { VersionConfigDict tmp = deserializer.Deserialize(yml); Storage.Config = tmp; } catch(Exception ex) { Console.WriteLine(ex.Message); } } public void writeConfig() { var serializer = new SerializerBuilder() .WithNamingConvention(CamelCaseNamingConvention.Instance) .Build(); var yaml = serializer.Serialize(Storage.Config); File.WriteAllTextAsync(Storage.ConfigPath, yaml); } } }