mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-16 11:37:58 +02:00
Fixed: Saving settings changes
This commit is contained in:
parent
c2b9504b15
commit
c8a0f9fa7a
@ -53,7 +53,7 @@ public void get_value_with_out_persist_should_not_store_default_value()
|
||||
|
||||
private void AssertUpsert(string key, object value)
|
||||
{
|
||||
Mocker.GetMock<IConfigRepository>().Verify(c => c.Upsert(It.Is<Config>(v => v.Key == key.ToLowerInvariant() && v.Value == value.ToString())));
|
||||
Mocker.GetMock<IConfigRepository>().Verify(c => c.Upsert(key.ToLowerInvariant(), value.ToString()));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@ -66,16 +66,14 @@ public void config_properties_should_write_and_read_using_same_key()
|
||||
var keys = new List<string>();
|
||||
var values = new List<Config>();
|
||||
|
||||
Mocker.GetMock<IConfigRepository>().Setup(c => c.Upsert(It.IsAny<Config>())).Callback<Config>(config =>
|
||||
Mocker.GetMock<IConfigRepository>().Setup(c => c.Upsert(It.IsAny<string>(), It.IsAny<string>())).Callback<string, string>((key, value) =>
|
||||
{
|
||||
keys.Add(config.Key);
|
||||
values.Add(config);
|
||||
keys.Add(key);
|
||||
values.Add(new Config { Key = key, Value = value });
|
||||
});
|
||||
|
||||
|
||||
Mocker.GetMock<IConfigRepository>().Setup(c => c.All()).Returns(values);
|
||||
|
||||
|
||||
foreach (var propertyInfo in allProperties)
|
||||
{
|
||||
object value = null;
|
||||
|
@ -8,7 +8,7 @@ namespace NzbDrone.Core.Configuration
|
||||
public interface IConfigRepository : IBasicRepository<Config>
|
||||
{
|
||||
Config Get(string key);
|
||||
|
||||
Config Upsert(string key, string value);
|
||||
}
|
||||
|
||||
public class ConfigRepository : BasicRepository<Config>, IConfigRepository
|
||||
@ -23,5 +23,19 @@ public Config Get(string key)
|
||||
{
|
||||
return Query.Where(c => c.Key == key).SingleOrDefault();
|
||||
}
|
||||
|
||||
public Config Upsert(string key, string value)
|
||||
{
|
||||
var dbValue = Get(key);
|
||||
|
||||
if (dbValue == null)
|
||||
{
|
||||
return Insert(new Config {Key = key, Value = value});
|
||||
}
|
||||
|
||||
dbValue.Value = value;
|
||||
|
||||
return Update(dbValue);
|
||||
}
|
||||
}
|
||||
}
|
@ -376,7 +376,7 @@ private void SetValue(string key, string value)
|
||||
key = key.ToLowerInvariant();
|
||||
|
||||
_logger.Trace("Writing Setting to database. Key:'{0}' Value:'{1}'", key, value);
|
||||
_repository.Upsert(new Config {Key = key, Value = value});
|
||||
_repository.Upsert(key, value);
|
||||
|
||||
ClearCache();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user