Added SaveValues to ConfigService

This commit is contained in:
Mark McDowall 2013-03-05 08:13:23 -08:00
parent 9bb383e2b8
commit 3dcf99753e
3 changed files with 20 additions and 0 deletions

View File

@ -32,6 +32,8 @@ namespace NzbDrone.Api.Settings
private Response SaveSettings()
{
var request = Request.Body.FromJson<Dictionary<string, object>>();
_configService.SaveValues(request);
return request.AsResponse();
}

View File

@ -593,6 +593,23 @@ namespace NzbDrone.Core.Configuration
ClearCache();
}
public void SaveValues(Dictionary<string, object> configValues)
{
//Todo: make this not suck - we need the pascal case of the key
//Todo: Can we batch save this without savig default values? Or do we care?
var allWithDefaults = AllWithDefaults();
foreach(var configValue in configValues)
{
object currentValue;
allWithDefaults.TryGetValue(configValue.Key, out currentValue);
if (!configValue.Equals(currentValue))
SetValue(configValue.Key, configValue.Value.ToString());
}
}
private void EnsureCache()
{
lock (_cache)

View File

@ -87,5 +87,6 @@ namespace NzbDrone.Core.Configuration
PriorityType NzbgetRecentTvPriority { get; set; }
string GetValue(string key, object defaultValue, bool persist = false);
void SetValue(string key, string value);
void SaveValues(Dictionary<string, object> configValues);
}
}