diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj b/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj
index 9a9ce24d6d..57f909667b 100644
--- a/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj
+++ b/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj
@@ -20,6 +20,7 @@
+
diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/AbpDddApplicationModule.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/AbpDddApplicationModule.cs
index 838050c067..84b609b99f 100644
--- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/AbpDddApplicationModule.cs
+++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/AbpDddApplicationModule.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Application.Services;
using Volo.Abp.Authorization;
using Volo.Abp.Domain;
@@ -8,17 +7,21 @@ using Volo.Abp.Http.Modeling;
using Volo.Abp.Modularity;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Security;
+using Volo.Abp.Settings;
using Volo.Abp.Uow;
using Volo.Abp.Validation;
namespace Volo.Abp.Application
{
- [DependsOn(typeof(AbpDddDomainModule))]
- [DependsOn(typeof(AbpSecurityModule))]
- [DependsOn(typeof(AbpObjectMappingModule))]
- [DependsOn(typeof(AbpValidationModule))]
- [DependsOn(typeof(AbpAuthorizationModule))]
- [DependsOn(typeof(AbpHttpAbstractionsModule))]
+ [DependsOn(
+ typeof(AbpDddDomainModule),
+ typeof(AbpSecurityModule),
+ typeof(AbpObjectMappingModule),
+ typeof(AbpValidationModule),
+ typeof(AbpAuthorizationModule),
+ typeof(AbpHttpAbstractionsModule),
+ typeof(AbpSettingsModule)
+ )]
public class AbpDddApplicationModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj
index d4aab94125..05291caa45 100644
--- a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj
+++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj
@@ -17,7 +17,6 @@
-
diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/AbpMultiTenancyAbstractionsModule.cs b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/AbpMultiTenancyAbstractionsModule.cs
index c695a84664..58de6cdb99 100644
--- a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/AbpMultiTenancyAbstractionsModule.cs
+++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/AbpMultiTenancyAbstractionsModule.cs
@@ -1,21 +1,13 @@
using Volo.Abp.Data;
using Volo.Abp.Modularity;
-using Volo.Abp.Settings;
namespace Volo.Abp.MultiTenancy
{
[DependsOn(
- typeof(AbpDataModule),
- typeof(AbpSettingsModule)
+ typeof(AbpDataModule)
)]
public class AbpMultiTenancyAbstractionsModule : AbpModule //TODO: Rename to AbpMultiTenancyModule?
{
- public override void ConfigureServices(ServiceConfigurationContext context)
- {
- Configure(options =>
- {
- options.ValueProviders.Add();
- });
- }
+
}
}
diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantSettingValueProvider.cs b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantSettingValueProvider.cs
deleted file mode 100644
index 542af56fe2..0000000000
--- a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantSettingValueProvider.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System.Threading.Tasks;
-using Volo.Abp.Settings;
-
-namespace Volo.Abp.MultiTenancy
-{
- public class TenantSettingValueProvider : SettingValueProvider
- {
- public const string ProviderName = "Tenant";
-
- public override string Name => ProviderName;
-
- protected ICurrentTenant CurrentTenant { get; }
-
- public TenantSettingValueProvider(ISettingStore settingStore, ICurrentTenant currentTenant)
- : base(settingStore)
- {
- CurrentTenant = currentTenant;
- }
-
- public override async Task GetOrNullAsync(SettingDefinition setting, string providerKey)
- {
- return await SettingStore.GetOrNullAsync(setting.Name, Name, NormalizeProviderKey(providerKey));
- }
-
- public override Task SetAsync(SettingDefinition setting, string value, string providerKey)
- {
- return SettingStore.SetAsync(setting.Name, value, Name, NormalizeProviderKey(providerKey));
- }
-
- public override Task ClearAsync(SettingDefinition setting, string providerKey)
- {
- return SettingStore.DeleteAsync(setting.Name, Name, NormalizeProviderKey(providerKey));
- }
-
- private string NormalizeProviderKey(string providerKey)
- {
- if (providerKey == null && CurrentTenant.Id.HasValue)
- {
- return CurrentTenant.Id.Value.ToString();
- }
-
- return providerKey;
- }
- }
-}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj b/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj
index 42ab46d477..b7e3530ba0 100644
--- a/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj
+++ b/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj
@@ -15,6 +15,7 @@
+
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/AbpSettingsModule.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/AbpSettingsModule.cs
index da871946ae..8c711e12c2 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/AbpSettingsModule.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/AbpSettingsModule.cs
@@ -1,15 +1,27 @@
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
+using Volo.Abp.MultiTenancy;
using Volo.Abp.Security;
+using Volo.Abp.Users;
namespace Volo.Abp.Settings
{
[DependsOn(
typeof(AbpLocalizationAbstractionsModule),
- typeof(AbpSecurityModule)
+ typeof(AbpSecurityModule),
+ typeof(AbpMultiTenancyAbstractionsModule)
)]
public class AbpSettingsModule : AbpModule
{
-
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.ValueProviders.Add();
+ options.ValueProviders.Add();
+ options.ValueProviders.Add();
+ options.ValueProviders.Add();
+ });
+ }
}
}
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/DefaultValueSettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/DefaultValueSettingValueProvider.cs
index 4a3bb7a29a..f6e1229cee 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/DefaultValueSettingValueProvider.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/DefaultValueSettingValueProvider.cs
@@ -14,21 +14,9 @@ namespace Volo.Abp.Settings
}
- public override Task GetOrNullAsync(SettingDefinition setting, string providerKey)
+ public override Task GetOrNullAsync(SettingDefinition setting)
{
return Task.FromResult(setting.DefaultValue);
}
-
- public override Task SetAsync(SettingDefinition setting, string value, string providerKey)
- {
- setting.DefaultValue = value;
- return Task.CompletedTask;
- }
-
- public override Task ClearAsync(SettingDefinition setting, string providerKey)
- {
- setting.DefaultValue = null;
- return Task.CompletedTask;
- }
}
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingValueProvider.cs
index 78a38cc703..c8d2e38542 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingValueProvider.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingValueProvider.cs
@@ -13,19 +13,9 @@ namespace Volo.Abp.Settings
{
}
- public override Task GetOrNullAsync(SettingDefinition setting, string providerKey)
+ public override Task GetOrNullAsync(SettingDefinition setting)
{
return SettingStore.GetOrNullAsync(setting.Name, Name, null);
}
-
- public override Task SetAsync(SettingDefinition setting, string value, string providerKey)
- {
- return SettingStore.SetAsync(setting.Name, value, Name, null);
- }
-
- public override Task ClearAsync(SettingDefinition setting, string providerKey)
- {
- return SettingStore.DeleteAsync(setting.Name, Name, null);
- }
}
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingStore.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingStore.cs
index 40ee68f462..69e6319a2f 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingStore.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingStore.cs
@@ -1,17 +1,14 @@
-using System.Collections.Generic;
-using System.Threading.Tasks;
+using System.Threading.Tasks;
using JetBrains.Annotations;
namespace Volo.Abp.Settings
{
public interface ISettingStore
{
- Task GetOrNullAsync([NotNull] string name, [CanBeNull] string providerName, [CanBeNull] string providerKey);
-
- Task SetAsync([NotNull] string name, [NotNull] string value, [CanBeNull] string providerName, [CanBeNull] string providerKey);
-
- Task> GetListAsync([CanBeNull] string providerName, [CanBeNull] string providerKey);
-
- Task DeleteAsync([NotNull] string name, [CanBeNull]string providerName, [CanBeNull]string providerKey);
+ Task GetOrNullAsync(
+ [NotNull] string name,
+ [CanBeNull] string providerName,
+ [CanBeNull] string providerKey
+ );
}
}
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingValueProvider.cs
index 3063a7cb15..ab63f47d17 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingValueProvider.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingValueProvider.cs
@@ -7,12 +7,6 @@ namespace Volo.Abp.Settings
{
string Name { get; }
- //TODO: There is a bug here, because we are checking the same providerKey in all providers in a fallback system!
-
- Task GetOrNullAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey);
-
- Task SetAsync([NotNull] SettingDefinition setting, [NotNull] string value, [CanBeNull] string providerKey);
-
- Task ClearAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey);
+ Task GetOrNullAsync([NotNull] SettingDefinition setting);
}
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingOptions.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingOptions.cs
index 66b4fa6c05..d916f1a95d 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingOptions.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingOptions.cs
@@ -11,11 +11,7 @@ namespace Volo.Abp.Settings
public SettingOptions()
{
DefinitionProviders = new TypeList();
- ValueProviders = new TypeList
- {
- typeof(DefaultValueSettingValueProvider),
- typeof(GlobalSettingValueProvider)
- };
+ ValueProviders = new TypeList();
}
}
}
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingProvider.cs
index b826a72e49..63abadae12 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingProvider.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingProvider.cs
@@ -48,7 +48,7 @@ namespace Volo.Abp.Settings
//TODO: How to implement setting.IsInherited?
- var value = await GetOrNullValueFromProvidersAsync(null, providers, setting);
+ var value = await GetOrNullValueFromProvidersAsync(providers, setting);
if (setting.IsEncrypted)
{
value = SettingEncryptionService.Decrypt(setting, value);
@@ -66,7 +66,7 @@ namespace Volo.Abp.Settings
{
foreach (var setting in settingDefinitions)
{
- var value = await provider.GetOrNullAsync(setting, null);
+ var value = await provider.GetOrNullAsync(setting);
if (value != null)
{
if (setting.IsEncrypted)
@@ -83,13 +83,12 @@ namespace Volo.Abp.Settings
}
protected virtual async Task GetOrNullValueFromProvidersAsync(
- string providerKey,
IEnumerable providers,
SettingDefinition setting)
{
foreach (var provider in providers)
{
- var value = await provider.GetOrNullAsync(setting, providerKey);
+ var value = await provider.GetOrNullAsync(setting);
if (value != null)
{
return value;
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingValueProvider.cs
index dcd98945e4..5173f80540 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingValueProvider.cs
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingValueProvider.cs
@@ -14,10 +14,6 @@ namespace Volo.Abp.Settings
SettingStore = settingStore;
}
- public abstract Task GetOrNullAsync(SettingDefinition setting, string providerKey);
-
- public abstract Task SetAsync(SettingDefinition setting, string value, string providerKey);
-
- public abstract Task ClearAsync(SettingDefinition setting, string providerKey);
+ public abstract Task GetOrNullAsync(SettingDefinition setting);
}
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/TenantSettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/TenantSettingValueProvider.cs
new file mode 100644
index 0000000000..7d8177a8e9
--- /dev/null
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/TenantSettingValueProvider.cs
@@ -0,0 +1,25 @@
+using System.Threading.Tasks;
+using Volo.Abp.MultiTenancy;
+
+namespace Volo.Abp.Settings
+{
+ public class TenantSettingValueProvider : SettingValueProvider
+ {
+ public const string ProviderName = "Tenant";
+
+ public override string Name => ProviderName;
+
+ protected ICurrentTenant CurrentTenant { get; }
+
+ public TenantSettingValueProvider(ISettingStore settingStore, ICurrentTenant currentTenant)
+ : base(settingStore)
+ {
+ CurrentTenant = currentTenant;
+ }
+
+ public override async Task GetOrNullAsync(SettingDefinition setting)
+ {
+ return await SettingStore.GetOrNullAsync(setting.Name, Name, CurrentTenant.Id?.ToString());
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/UserSettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/UserSettingValueProvider.cs
new file mode 100644
index 0000000000..4a98dcee62
--- /dev/null
+++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/UserSettingValueProvider.cs
@@ -0,0 +1,30 @@
+using System.Threading.Tasks;
+using Volo.Abp.Users;
+
+namespace Volo.Abp.Settings
+{
+ public class UserSettingValueProvider : SettingValueProvider
+ {
+ public const string ProviderName = "User";
+
+ public override string Name => ProviderName;
+
+ protected ICurrentUser CurrentUser { get; }
+
+ public UserSettingValueProvider(ISettingStore settingStore, ICurrentUser currentUser)
+ : base(settingStore)
+ {
+ CurrentUser = currentUser;
+ }
+
+ public override async Task GetOrNullAsync(SettingDefinition setting)
+ {
+ if (CurrentUser.Id == null)
+ {
+ return null;
+ }
+
+ return await SettingStore.GetOrNullAsync(setting.Name, Name, CurrentUser.Id.ToString());
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/TestSettingValueProvider.cs b/framework/test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/TestSettingValueProvider.cs
index e8f5cbc559..2dbe1e5729 100644
--- a/framework/test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/TestSettingValueProvider.cs
+++ b/framework/test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/TestSettingValueProvider.cs
@@ -17,21 +17,9 @@ namespace Volo.Abp.Settings
_values = new Dictionary();
}
- public Task GetOrNullAsync(SettingDefinition setting, string providerKey)
+ public Task GetOrNullAsync(SettingDefinition setting)
{
return Task.FromResult(_values.GetOrDefault(setting.Name));
}
-
- public Task SetAsync(SettingDefinition setting, string value, string providerKey)
- {
- _values[setting.Name] = value;
- return Task.CompletedTask;
- }
-
- public Task ClearAsync(SettingDefinition setting, string providerKey)
- {
- _values.Remove(setting.Name);
- return Task.CompletedTask;
- }
}
}
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs
index b765b1360a..9ee60b0a93 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionManagementProvider.cs
@@ -5,7 +5,7 @@ using Volo.Abp.DependencyInjection;
namespace Volo.Abp.PermissionManagement
{
- public interface IPermissionManagementProvider : ISingletonDependency
+ public interface IPermissionManagementProvider : ISingletonDependency //TODO: Consider to remove this pre-assumption
{
string Name { get; }
diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs
index 2e29ab9c29..674f5daa88 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs
@@ -5,6 +5,7 @@ namespace Volo.Abp.PermissionManagement
{
public class PermissionManagementOptions
{
+ //TODO: rename to Providers
public ITypeList ManagementProviders { get; }
public Dictionary ProviderPolicies { get; }
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs
index 0ddc49b076..237b226b07 100644
--- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs
@@ -13,6 +13,15 @@ namespace Volo.Abp.SettingManagement
)]
public class AbpSettingManagementDomainModule : AbpModule
{
-
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.Providers.Add();
+ options.Providers.Add();
+ options.Providers.Add();
+ options.Providers.Add();
+ });
+ }
}
}
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider.cs
new file mode 100644
index 0000000000..3bb4ae2655
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider.cs
@@ -0,0 +1,26 @@
+using System.Threading.Tasks;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public class DefaultValueSettingManagementProvider : ISettingManagementProvider, ISingletonDependency
+ {
+ public string Name => DefaultValueSettingValueProvider.ProviderName;
+
+ public Task GetOrNullAsync(SettingDefinition setting, string providerKey)
+ {
+ return Task.FromResult(setting.DefaultValue);
+ }
+
+ public Task SetAsync(SettingDefinition setting, string value, string providerKey)
+ {
+ throw new AbpException($"Can not set default value of a setting. It is only possible while defining the setting in a {typeof(ISettingDefinitionProvider)} implementation.");
+ }
+
+ public Task ClearAsync(SettingDefinition setting, string providerKey)
+ {
+ throw new AbpException($"Can not clear default value of a setting. It is only possible while defining the setting in a {typeof(ISettingDefinitionProvider)} implementation.");
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagerExtensions.cs
new file mode 100644
index 0000000000..20ad176ecc
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagerExtensions.cs
@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using JetBrains.Annotations;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public static class DefaultValueSettingManagerExtensions
+ {
+ public static Task GetOrNullDefaultAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true)
+ {
+ return settingManager.GetOrNullAsync(name, DefaultValueSettingValueProvider.ProviderName, null, fallback);
+ }
+
+ public static Task> GetAllDefaultAsync(this ISettingManager settingManager, bool fallback = true)
+ {
+ return settingManager.GetAllAsync(DefaultValueSettingValueProvider.ProviderName, null, fallback);
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagementProvider.cs
new file mode 100644
index 0000000000..85201eb39a
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagementProvider.cs
@@ -0,0 +1,21 @@
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public class GlobalSettingManagementProvider : SettingManagementProvider, ITransientDependency
+ {
+ public override string Name => GlobalSettingValueProvider.ProviderName;
+
+ public GlobalSettingManagementProvider(ISettingManagementStore settingManagementStore)
+ : base(settingManagementStore)
+ {
+
+ }
+
+ protected override string NormalizeProviderKey(string providerKey)
+ {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagerExtensions.cs
similarity index 93%
rename from framework/src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingManagerExtensions.cs
rename to modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagerExtensions.cs
index d5dabccfe8..e403eb41a3 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/GlobalSettingManagerExtensions.cs
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagerExtensions.cs
@@ -1,8 +1,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using JetBrains.Annotations;
+using Volo.Abp.Settings;
-namespace Volo.Abp.Settings
+namespace Volo.Abp.SettingManagement
{
public static class GlobalSettingManagerExtensions
{
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementProvider.cs
new file mode 100644
index 0000000000..827b0ff851
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementProvider.cs
@@ -0,0 +1,17 @@
+using System.Threading.Tasks;
+using JetBrains.Annotations;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public interface ISettingManagementProvider
+ {
+ string Name { get; }
+
+ Task GetOrNullAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey);
+
+ Task SetAsync([NotNull] SettingDefinition setting, [NotNull] string value, [CanBeNull] string providerKey);
+
+ Task ClearAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey);
+ }
+}
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementStore.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementStore.cs
new file mode 100644
index 0000000000..eebdc69357
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementStore.cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public interface ISettingManagementStore
+ {
+ Task GetOrNullAsync(string name, string providerName, string providerKey);
+
+ Task> GetListAsync(string providerName, string providerKey);
+
+ Task SetAsync(string name, string value, string providerName, string providerKey);
+
+ Task DeleteAsync(string name, string providerName, string providerKey);
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingManager.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs
similarity index 90%
rename from framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingManager.cs
rename to modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs
index bd0b5c7d20..77ae59e664 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingManager.cs
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs
@@ -1,8 +1,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using JetBrains.Annotations;
+using Volo.Abp.Settings;
-namespace Volo.Abp.Settings
+namespace Volo.Abp.SettingManagement
{
public interface ISettingManager
{
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementOptions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementOptions.cs
new file mode 100644
index 0000000000..06ced8e8a8
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementOptions.cs
@@ -0,0 +1,14 @@
+using Volo.Abp.Collections;
+
+namespace Volo.Abp.SettingManagement
+{
+ public class SettingManagementOptions
+ {
+ public ITypeList Providers { get; }
+
+ public SettingManagementOptions()
+ {
+ Providers = new TypeList();
+ }
+ }
+}
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementProvider.cs
new file mode 100644
index 0000000000..d350cc28d7
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementProvider.cs
@@ -0,0 +1,37 @@
+using System.Threading.Tasks;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public abstract class SettingManagementProvider : ISettingManagementProvider
+ {
+ public abstract string Name { get; }
+
+ protected ISettingManagementStore SettingManagementStore { get; }
+
+ protected SettingManagementProvider(ISettingManagementStore settingManagementStore)
+ {
+ SettingManagementStore = settingManagementStore;
+ }
+
+ public async Task GetOrNullAsync(SettingDefinition setting, string providerKey)
+ {
+ return await SettingManagementStore.GetOrNullAsync(setting.Name, Name, NormalizeProviderKey(providerKey));
+ }
+
+ public virtual async Task SetAsync(SettingDefinition setting, string value, string providerKey)
+ {
+ await SettingManagementStore.SetAsync(setting.Name, value, Name, NormalizeProviderKey(providerKey));
+ }
+
+ public virtual async Task ClearAsync(SettingDefinition setting, string providerKey)
+ {
+ await SettingManagementStore.DeleteAsync(setting.Name, Name, NormalizeProviderKey(providerKey));
+ }
+
+ protected virtual string NormalizeProviderKey(string providerKey)
+ {
+ return providerKey;
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs
new file mode 100644
index 0000000000..8c9cfc8684
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs
@@ -0,0 +1,90 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Volo.Abp.Caching;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Guids;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public class SettingManagementStore : ISettingManagementStore, ITransientDependency
+ {
+ protected IDistributedCache Cache { get; }
+ protected ISettingRepository SettingRepository { get; }
+ protected IGuidGenerator GuidGenerator { get; }
+
+ public SettingManagementStore(
+ ISettingRepository settingRepository,
+ IGuidGenerator guidGenerator,
+ IDistributedCache cache)
+ {
+ SettingRepository = settingRepository;
+ GuidGenerator = guidGenerator;
+ Cache = cache;
+ }
+
+ public async Task GetOrNullAsync(string name, string providerName, string providerKey)
+ {
+ var cacheItem = await GetCacheItemAsync(name, providerName, providerKey);
+ return cacheItem.Value;
+ }
+
+ public async Task SetAsync(string name, string value, string providerName, string providerKey)
+ {
+ var setting = await SettingRepository.FindAsync(name, providerName, providerKey);
+ if (setting == null)
+ {
+ setting = new Setting(GuidGenerator.Create(), name, value, providerName, providerKey);
+ await SettingRepository.InsertAsync(setting);
+ }
+ else
+ {
+ setting.Value = value;
+ await SettingRepository.UpdateAsync(setting);
+ }
+ }
+
+ public async Task> GetListAsync(string providerName, string providerKey)
+ {
+ var settings = await SettingRepository.GetListAsync(providerName, providerKey);
+ return settings.Select(s => new SettingValue(s.Name, s.Value)).ToList();
+ }
+
+ public async Task DeleteAsync(string name, string providerName, string providerKey)
+ {
+ var setting = await SettingRepository.FindAsync(name, providerName, providerKey);
+ if (setting != null)
+ {
+ await SettingRepository.DeleteAsync(setting);
+ }
+ }
+
+ protected virtual async Task GetCacheItemAsync(string name, string providerName, string providerKey)
+ {
+ var cacheKey = CalculateCacheKey(name, providerName, providerKey);
+ var cacheItem = await Cache.GetAsync(cacheKey);
+
+ if (cacheItem != null)
+ {
+ return cacheItem;
+ }
+
+ var setting = await SettingRepository.FindAsync(name, providerName, providerKey);
+
+ cacheItem = new SettingCacheItem(setting?.Value);
+
+ await Cache.SetAsync(
+ cacheKey,
+ cacheItem
+ );
+
+ return cacheItem;
+ }
+
+ protected virtual string CalculateCacheKey(string name, string providerName, string providerKey)
+ {
+ return SettingCacheItem.CalculateCacheKey(name, providerName, providerKey);
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManager.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs
similarity index 81%
rename from framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManager.cs
rename to modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs
index fffa1021a9..cfb4cccbe3 100644
--- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManager.cs
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs
@@ -5,18 +5,20 @@ using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
+using Volo.Abp.Settings;
-namespace Volo.Abp.Settings
+namespace Volo.Abp.SettingManagement
{
public class SettingManager : ISettingManager, ISingletonDependency
{
protected ISettingDefinitionManager SettingDefinitionManager { get; }
protected ISettingEncryptionService SettingEncryptionService { get; }
- protected Lazy> Providers { get; }
- protected SettingOptions Options { get; }
+ protected List Providers => _lazyProviders.Value;
+ protected SettingManagementOptions Options { get; }
+ private readonly Lazy> _lazyProviders;
public SettingManager(
- IOptions options,
+ IOptions options,
IServiceProvider serviceProvider,
ISettingDefinitionManager settingDefinitionManager,
ISettingEncryptionService settingEncryptionService)
@@ -25,10 +27,12 @@ namespace Volo.Abp.Settings
SettingEncryptionService = settingEncryptionService;
Options = options.Value;
- Providers = new Lazy>(
+ //TODO: Instead, use IHybridServiceScopeFactory and create a scope..?
+
+ _lazyProviders = new Lazy>(
() => Options
- .ValueProviders
- .Select(c => serviceProvider.GetRequiredService(c) as ISettingValueProvider)
+ .Providers
+ .Select(c => serviceProvider.GetRequiredService(c) as ISettingManagementProvider)
.ToList(),
true
);
@@ -47,7 +51,7 @@ namespace Volo.Abp.Settings
Check.NotNull(providerName, nameof(providerName));
var settingDefinitions = SettingDefinitionManager.GetAll();
- var providers = Enumerable.Reverse(Providers.Value)
+ var providers = Enumerable.Reverse(Providers)
.SkipWhile(c => c.Name != providerName);
if (!fallback)
@@ -72,7 +76,10 @@ namespace Volo.Abp.Settings
{
foreach (var provider in providerList)
{
- var providerValue = await provider.GetOrNullAsync(setting, providerKey);
+ var providerValue = await provider.GetOrNullAsync(
+ setting,
+ provider.Name == providerName ? providerKey : null
+ );
if (providerValue != null)
{
value = providerValue;
@@ -81,7 +88,10 @@ namespace Volo.Abp.Settings
}
else
{
- value = await providerList[0].GetOrNullAsync(setting, providerKey);
+ value = await providerList[0].GetOrNullAsync(
+ setting,
+ providerKey
+ );
}
if (setting.IsEncrypted)
@@ -106,7 +116,7 @@ namespace Volo.Abp.Settings
var setting = SettingDefinitionManager.Get(name);
var providers = Enumerable
- .Reverse(Providers.Value)
+ .Reverse(Providers)
.SkipWhile(p => p.Name != providerName)
.ToList();
@@ -122,10 +132,10 @@ namespace Volo.Abp.Settings
if (providers.Count > 1 && !forceToSet && setting.IsInherited && value != null)
{
- //Clear the value if it's same as it's fallback value
- var fallbackValue = await GetOrNullInternalAsync(name, providers[1].Name, providerKey);
+ var fallbackValue = await GetOrNullInternalAsync(name, providers[1].Name, null);
if (fallbackValue == value)
{
+ //Clear the value if it's same as it's fallback value
value = null;
}
}
@@ -154,7 +164,7 @@ namespace Volo.Abp.Settings
{
var setting = SettingDefinitionManager.Get(name);
var providers = Enumerable
- .Reverse(Providers.Value);
+ .Reverse(Providers);
if (providerName != null)
{
@@ -166,30 +176,26 @@ namespace Volo.Abp.Settings
providers = providers.TakeWhile(c => c.Name == providerName);
}
- var value = await GetOrNullValueFromProvidersAsync(providerKey, providers, setting);
- if (setting.IsEncrypted)
- {
- value = SettingEncryptionService.Decrypt(setting, value);
- }
-
- return value;
- }
-
- protected virtual async Task GetOrNullValueFromProvidersAsync(
- string providerKey,
- IEnumerable providers,
- SettingDefinition setting)
- {
+ string value = null;
foreach (var provider in providers)
{
- var value = await provider.GetOrNullAsync(setting, providerKey);
+ value = await provider.GetOrNullAsync(
+ setting,
+ provider.Name == providerName ? providerKey : null
+ );
+
if (value != null)
{
- return value;
+ break;
}
}
- return null;
+ if (setting.IsEncrypted)
+ {
+ value = SettingEncryptionService.Decrypt(setting, value);
+ }
+
+ return value;
}
}
}
\ No newline at end of file
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagementProvider.cs
new file mode 100644
index 0000000000..947e2d8799
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagementProvider.cs
@@ -0,0 +1,31 @@
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.MultiTenancy;
+using Volo.Abp.Settings;
+
+namespace Volo.Abp.SettingManagement
+{
+ public class TenantSettingManagementProvider : SettingManagementProvider, ITransientDependency
+ {
+ public override string Name => TenantSettingValueProvider.ProviderName;
+
+ protected ICurrentTenant CurrentTenant { get; }
+
+ public TenantSettingManagementProvider(
+ ISettingManagementStore settingManagementStore,
+ ICurrentTenant currentTenant)
+ : base(settingManagementStore)
+ {
+ CurrentTenant = currentTenant;
+ }
+
+ protected override string NormalizeProviderKey(string providerKey)
+ {
+ if (providerKey != null)
+ {
+ return providerKey;
+ }
+
+ return CurrentTenant.Id?.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/Settings/TenantSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagerExtensions.cs
similarity index 96%
rename from framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/Settings/TenantSettingManagerExtensions.cs
rename to modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagerExtensions.cs
index f3500bf80a..f5cc345931 100644
--- a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/Settings/TenantSettingManagerExtensions.cs
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagerExtensions.cs
@@ -2,9 +2,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using JetBrains.Annotations;
-using Volo.Abp.MultiTenancy;
+using Volo.Abp.Settings;
-namespace Volo.Abp.Settings
+namespace Volo.Abp.SettingManagement
{
public static class TenantSettingManagerExtensions
{
diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagementProvider.cs
new file mode 100644
index 0000000000..790e0eaa0c
--- /dev/null
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagementProvider.cs
@@ -0,0 +1,31 @@
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Settings;
+using Volo.Abp.Users;
+
+namespace Volo.Abp.SettingManagement
+{
+ public class UserSettingManagementProvider : SettingManagementProvider, ITransientDependency
+ {
+ public override string Name => UserSettingValueProvider.ProviderName;
+
+ protected ICurrentUser CurrentUser { get; }
+
+ public UserSettingManagementProvider(
+ ISettingManagementStore settingManagementStore,
+ ICurrentUser currentUser)
+ : base(settingManagementStore)
+ {
+ CurrentUser = currentUser;
+ }
+
+ protected override string NormalizeProviderKey(string providerKey)
+ {
+ if (providerKey != null)
+ {
+ return providerKey;
+ }
+
+ return CurrentUser.Id?.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Settings/UserSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagerExtensions.cs
similarity index 96%
rename from modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Settings/UserSettingManagerExtensions.cs
rename to modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagerExtensions.cs
index 4e3a1dd574..2b58382463 100644
--- a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Settings/UserSettingManagerExtensions.cs
+++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagerExtensions.cs
@@ -2,9 +2,10 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using JetBrains.Annotations;
+using Volo.Abp.Settings;
using Volo.Abp.Users;
-namespace Volo.Abp.Settings
+namespace Volo.Abp.SettingManagement
{
//TODO: Consider to move to another package?
diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs
index ce0a71b6db..79ae4702c8 100644
--- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs
+++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs
@@ -22,7 +22,7 @@ namespace Volo.Abp.SettingManagement
public void Build()
{
- _settingRepository.InsertAsync(
+ _settingRepository.Insert(
new Setting(
_guidGenerator.Create(),
"MySetting1",
@@ -31,7 +31,7 @@ namespace Volo.Abp.SettingManagement
)
);
- _settingRepository.InsertAsync(
+ _settingRepository.Insert(
new Setting(
_guidGenerator.Create(),
"MySetting2",
@@ -40,7 +40,7 @@ namespace Volo.Abp.SettingManagement
)
);
- _settingRepository.InsertAsync(
+ _settingRepository.Insert(
new Setting(
_guidGenerator.Create(),
"MySetting2",
@@ -50,7 +50,7 @@ namespace Volo.Abp.SettingManagement
)
);
- _settingRepository.InsertAsync(
+ _settingRepository.Insert(
new Setting(
_guidGenerator.Create(),
"MySetting2",
@@ -60,7 +60,7 @@ namespace Volo.Abp.SettingManagement
)
);
- _settingRepository.InsertAsync(
+ _settingRepository.Insert(
new Setting(
_guidGenerator.Create(),
"MySettingWithoutInherit",
@@ -69,7 +69,7 @@ namespace Volo.Abp.SettingManagement
)
);
- _settingRepository.InsertAsync(
+ _settingRepository.Insert(
new Setting(
_guidGenerator.Create(),
"MySettingWithoutInherit",
diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs
index 0b9cc288d6..4b42572f0a 100644
--- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs
+++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs
@@ -1,16 +1,16 @@
-using System;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.DependencyInjection;
using NSubstitute;
using Shouldly;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
using Volo.Abp.Settings;
using Volo.Abp.Users;
using Xunit;
namespace Volo.Abp.SettingManagement
{
- public class SettingManager_User_Tests: SettingsTestBase
+ public class SettingManager_User_Tests : SettingsTestBase
{
private Guid? _currentUserId;
diff --git a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/AbpUsersAbstractionModule.cs b/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/AbpUsersAbstractionModule.cs
index f27813e04b..2c482606eb 100644
--- a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/AbpUsersAbstractionModule.cs
+++ b/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/AbpUsersAbstractionModule.cs
@@ -14,12 +14,6 @@ namespace Volo.Abp.Users
)]
public class AbpUsersAbstractionModule : AbpModule
{
- public override void ConfigureServices(ServiceConfigurationContext context)
- {
- Configure(options =>
- {
- options.ValueProviders.Add();
- });
- }
+
}
}
diff --git a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserSettingValueProvider.cs b/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserSettingValueProvider.cs
deleted file mode 100644
index 345b0e6929..0000000000
--- a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserSettingValueProvider.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using System.Threading.Tasks;
-using Volo.Abp.Settings;
-
-namespace Volo.Abp.Users
-{
- //TODO: Optimization: Get all settings and cache it!
- //TODO: Think if it's true to have this provider in this project?
-
- public class UserSettingValueProvider : SettingValueProvider
- {
- public const string ProviderName = "User";
-
- public override string Name => ProviderName;
-
- protected ICurrentUser CurrentUser { get; }
-
- public UserSettingValueProvider(ISettingStore settingStore, ICurrentUser currentUser)
- : base(settingStore)
- {
- CurrentUser = currentUser;
- }
-
- public override async Task GetOrNullAsync(SettingDefinition setting, string providerKey)
- {
- return await SettingStore.GetOrNullAsync(setting.Name, Name, NormalizeProviderKey(providerKey));
- }
-
- public override Task SetAsync(SettingDefinition setting, string value, string providerKey)
- {
- return SettingStore.SetAsync(setting.Name, value, Name, NormalizeProviderKey(providerKey));
- }
-
- public override Task ClearAsync(SettingDefinition setting, string providerKey)
- {
- return SettingStore.DeleteAsync(setting.Name, Name, NormalizeProviderKey(providerKey));
- }
-
- private string NormalizeProviderKey(string providerKey)
- {
- if (providerKey == null && CurrentUser.Id.HasValue)
- {
- return CurrentUser.Id.Value.ToString();
- }
-
- return providerKey;
- }
- }
-}
\ No newline at end of file