Skip to content

Commit

Permalink
setting category im Key enthalten
Browse files Browse the repository at this point in the history
  • Loading branch information
marcwittke committed Dec 13, 2017
1 parent 82fd9cc commit 1e8480c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
12 changes: 7 additions & 5 deletions src/Backend.Fx/ConfigurationSettings/SettingsService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,22 @@ namespace Backend.Fx.ConfigurationSettings

public abstract class SettingsService
{
private readonly string category;
private readonly IEntityIdGenerator idGenerator;
private readonly IRepository<Setting> settingRepository;
private readonly SettingSerializerFactory settingSerializerFactory;

protected SettingsService(IEntityIdGenerator idGenerator, IRepository<Setting> settingRepository, SettingSerializerFactory settingSerializerFactory)
protected SettingsService(string category, IEntityIdGenerator idGenerator, IRepository<Setting> settingRepository, SettingSerializerFactory settingSerializerFactory)
{
this.category = category;
this.idGenerator = idGenerator;
this.settingRepository = settingRepository;
this.settingSerializerFactory = settingSerializerFactory;
}

protected T ReadSetting<T>(string key)
{
var setting = settingRepository.AggregateQueryable.SingleOrDefault(s => s.Key == key.ToString());
var setting = settingRepository.AggregateQueryable.SingleOrDefault(s => s.Key == category + "." + key);
if (setting == null)
{
return default(T);
Expand All @@ -28,12 +30,12 @@ protected T ReadSetting<T>(string key)
return setting.GetValue(serializer);
}

protected void WriteSetting<T>(string key, T value)
protected void WriteSetting<T>(string key, T value)
{
var setting = settingRepository.AggregateQueryable.SingleOrDefault(s => s.Key == key.ToString());
var setting = settingRepository.AggregateQueryable.SingleOrDefault(s => s.Key == category + "." + key);
if (setting == null)
{
setting = new Setting(idGenerator.NextId(), key);
setting = new Setting(idGenerator.NextId(), category + "." + key);
settingRepository.Add(setting);
}
var serializer = settingSerializerFactory.GetSerializer<T>();
Expand Down
2 changes: 1 addition & 1 deletion tests/Backend.Fx.Tests/ConfigurationSettings/TheSetting.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class TestSettingsService : SettingsService
{

public TestSettingsService(IEntityIdGenerator idGenerator, IRepository<Setting> settingRepository)
: base(idGenerator, settingRepository, new SettingSerializerFactory())
: base("Test", idGenerator, settingRepository, new SettingSerializerFactory())
{ }
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class TheSettingsService
public class MySettingsService : SettingsService
{
public MySettingsService(IEntityIdGenerator idGenerator, IRepository<Setting> repo)
: base(idGenerator, repo, new SettingSerializerFactory())
: base("My", idGenerator, repo, new SettingSerializerFactory())
{
}
public int SmtpPort
Expand Down Expand Up @@ -57,13 +57,13 @@ public void StoresSettingsInRepository()
Setting[] settings = settingRepository.GetAll();
Assert.Equal(1, settings.Length);
Assert.Equal("333", settings[0].SerializedValue);
Assert.Equal("SmtpPort", settings[0].Key);
Assert.Equal("My.SmtpPort", settings[0].Key);
}

[Fact]
public void ReadsSettingFromRepository()
{
var setting = new Setting(1, "SmtpPort");
var setting = new Setting(1, "My.SmtpPort");
setting.SetPrivate(set => set.SerializedValue, "333");

settingRepository.Add(setting);
Expand All @@ -75,7 +75,7 @@ public void ReadsSettingFromRepository()
[Fact]
public void ReadsNullSettingFromRepository()
{
var setting = new Setting(3,"SmtpHost");
var setting = new Setting(3,"My.SmtpHost");
setting.SetPrivate(set => set.SerializedValue, null);

settingRepository.Add(setting);
Expand Down

0 comments on commit 1e8480c

Please sign in to comment.