Browse Source

Refactored setting system.

pull/204/head
Halil İbrahim Kalkan 9 years ago
parent
commit
f9618dcf14
  1. 29
      src/Volo.Abp.Settings/Volo/Abp/Settings/DefaultStoreSettingValueProvider.cs
  2. 24
      src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingManagerExtensions.cs
  3. 31
      src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingValueProvider.cs
  4. 2
      src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingManager.cs
  5. 8
      src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManager.cs
  6. 2
      src/Volo.Abp.Settings/Volo/Abp/Settings/SettingOptions.cs
  7. 4
      test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/AbpIdentityTestDataBuilder.cs
  8. 6
      test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/SettingManager_Basic_Tests.cs

29
src/Volo.Abp.Settings/Volo/Abp/Settings/DefaultStoreSettingValueProvider.cs

@ -1,29 +0,0 @@
using System.Threading.Tasks;
namespace Volo.Abp.Settings
{
public class DefaultStoreSettingValueProvider : SettingValueProvider
{
public override string EntityType => null;
public DefaultStoreSettingValueProvider(ISettingStore settingStore)
: base(settingStore)
{
}
public override Task<string> GetOrNullAsync(SettingDefinition setting, string entityId)
{
return SettingStore.GetOrNullAsync(setting.Name, null, null);
}
public override Task SetAsync(SettingDefinition setting, string value, string entityId)
{
return SettingStore.SetAsync(setting.Name, value, null, null);
}
public override Task ClearAsync(SettingDefinition setting, string entityId)
{
return SettingStore.DeleteAsync(setting.Name, null, null);
}
}
}

24
src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingManagerExtensions.cs

@ -0,0 +1,24 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using JetBrains.Annotations;
namespace Volo.Abp.Settings
{
public static class GlobalSettingManagerExtensions
{
public static Task<string> GetOrNullGlobalAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true)
{
return settingManager.GetOrNullAsync(name, GlobalSettingValueProvider.DefaultEntityType, null, fallback);
}
public static Task<List<SettingValue>> GetAllGlobalAsync(this ISettingManager settingManager, bool fallback = true)
{
return settingManager.GetAllAsync(GlobalSettingValueProvider.DefaultEntityType, null, fallback);
}
public static Task SetGlobalAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value)
{
return settingManager.SetAsync(name, value, GlobalSettingValueProvider.DefaultEntityType, null);
}
}
}

31
src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingValueProvider.cs

@ -0,0 +1,31 @@
using System.Threading.Tasks;
namespace Volo.Abp.Settings
{
public class GlobalSettingValueProvider : SettingValueProvider
{
public const string DefaultEntityType = "Global";
public override string EntityType => DefaultEntityType;
public GlobalSettingValueProvider(ISettingStore settingStore)
: base(settingStore)
{
}
public override Task<string> GetOrNullAsync(SettingDefinition setting, string entityId)
{
return SettingStore.GetOrNullAsync(setting.Name, EntityType, null);
}
public override Task SetAsync(SettingDefinition setting, string value, string entityId)
{
return SettingStore.SetAsync(setting.Name, value, EntityType, null);
}
public override Task ClearAsync(SettingDefinition setting, string entityId)
{
return SettingStore.DeleteAsync(setting.Name, EntityType, null);
}
}
}

2
src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingManager.cs

@ -14,8 +14,6 @@ namespace Volo.Abp.Settings
Task<List<SettingValue>> GetAllAsync([NotNull] string entityType, [CanBeNull] string entityId, bool fallback = true);
Task SetAsync([NotNull] string name, [CanBeNull] string value, bool forceToSet = false);
Task SetAsync([NotNull] string name, [CanBeNull] string value, [NotNull] string entityType, [CanBeNull] string entityId, bool forceToSet = false);
}
}

8
src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManager.cs

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
@ -132,13 +131,6 @@ namespace Volo.Abp.Settings
return settingValues.Values.ToList();
}
public virtual Task SetAsync(string name, string value, bool forceToSet = false)
{
Check.NotNull(name, nameof(name));
return SetInternalAsync(name, value, null, null, forceToSet);
}
public virtual Task SetAsync(string name, string value, string entityType, string entityId, bool forceToSet = false)
{
Check.NotNull(name, nameof(name));

2
src/Volo.Abp.Settings/Volo/Abp/Settings/SettingOptions.cs

@ -14,7 +14,7 @@ namespace Volo.Abp.Settings
ValueProviders = new TypeList<ISettingValueProvider>
{
typeof(DefaultValueSettingValueProvider),
typeof(DefaultStoreSettingValueProvider)
typeof(GlobalSettingValueProvider)
};
}
}

4
test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/AbpIdentityTestDataBuilder.cs

@ -21,9 +21,9 @@ namespace Volo.Abp.Settings
public void Build()
{
_settingRepository.InsertAsync(new Setting(_guidGenerator.Create(), "MySetting1", "42"));
_settingRepository.InsertAsync(new Setting(_guidGenerator.Create(), "MySetting1", "42", GlobalSettingValueProvider.DefaultEntityType));
_settingRepository.InsertAsync(new Setting(_guidGenerator.Create(), "MySetting2", "default-store-value"));
_settingRepository.InsertAsync(new Setting(_guidGenerator.Create(), "MySetting2", "default-store-value", GlobalSettingValueProvider.DefaultEntityType));
_settingRepository.InsertAsync(new Setting(_guidGenerator.Create(), "MySetting2", "user1-store-value", UserSettingValueProvider.DefaultEntityType, User1Id.ToString()));
_settingRepository.InsertAsync(new Setting(_guidGenerator.Create(), "MySetting2", "user2-store-value", UserSettingValueProvider.DefaultEntityType, User2Id.ToString()));
}

6
test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/SettingManager_Basic_Tests.cs

@ -44,12 +44,12 @@ namespace Volo.Abp.Settings
}
[Fact]
public async Task Should_Set_Value()
public async Task Should_Set_Global_Value()
{
await _settingManager.SetAsync("MySetting1", "43");
await _settingManager.SetGlobalAsync("MySetting1", "43");
(await _settingManager.GetOrNullGlobalAsync("MySetting1")).ShouldBe("43");
(await _settingManager.GetOrNullAsync("MySetting1")).ShouldBe("43");
//TODO: Also check database!
}
}
}

Loading…
Cancel
Save