Radarr/src/NzbDrone.Core/Configuration/ConfigRepository.cs

40 lines
979 B
C#
Raw Normal View History

2013-02-24 06:48:52 +00:00
using System.Linq;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Messaging.Events;
2013-09-11 06:33:47 +00:00
2013-02-24 06:48:52 +00:00
namespace NzbDrone.Core.Configuration
{
public interface IConfigRepository : IBasicRepository<Config>
{
Config Get(string key);
2015-11-26 20:05:37 +00:00
Config Upsert(string key, string value);
2013-02-24 06:48:52 +00:00
}
public class ConfigRepository : BasicRepository<Config>, IConfigRepository
{
public ConfigRepository(IMainDatabase database, IEventAggregator eventAggregator)
: base(database, eventAggregator)
2013-02-24 06:48:52 +00:00
{
}
public Config Get(string key)
{
2019-12-18 21:56:41 +00:00
return Query(c => c.Key == key).SingleOrDefault();
2013-02-24 06:48:52 +00:00
}
2015-11-26 20:05:37 +00:00
public Config Upsert(string key, string value)
{
var dbValue = Get(key);
if (dbValue == null)
{
2019-12-22 22:08:53 +00:00
return Insert(new Config { Key = key, Value = value });
2015-11-26 20:05:37 +00:00
}
dbValue.Value = value;
return Update(dbValue);
}
2013-02-24 06:48:52 +00:00
}
}