Allow users to have multiple configuration files

This commit is contained in:
Anton Kasyanov
2016-10-15 21:21:48 +03:00
parent 1e59163ce7
commit 278ab21592
7 changed files with 69 additions and 21 deletions

View File

@@ -7,21 +7,23 @@ namespace EveOPreview.Configuration
{
private const string ConfigurationFileName = "EVE-O Preview.json";
private readonly IAppConfig _configuration;
private readonly IThumbnailConfig _configuration;
public ConfigurationStorage(IAppConfig configuration)
public ConfigurationStorage(IThumbnailConfig configuration)
{
this._configuration = configuration;
}
public void Load()
{
if (!File.Exists(ConfigurationStorage.ConfigurationFileName))
string filename = this.GetConfigFileName();
if (!File.Exists(filename))
{
return;
}
string rawData = File.ReadAllText(ConfigurationStorage.ConfigurationFileName);
string rawData = File.ReadAllText(filename);
JsonConvert.PopulateObject(rawData, this._configuration);
@@ -33,7 +35,12 @@ namespace EveOPreview.Configuration
{
string rawData = JsonConvert.SerializeObject(this._configuration, Formatting.Indented);
File.WriteAllText(ConfigurationStorage.ConfigurationFileName, rawData);
File.WriteAllText(this.GetConfigFileName(), rawData);
}
private string GetConfigFileName()
{
return string.IsNullOrEmpty(this._configuration.ConfigFileName) ? ConfigurationStorage.ConfigurationFileName : this._configuration.ConfigFileName;
}
}
}