diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs index f95887658d..91b389c354 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs @@ -1,90 +1,21 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Volo.Abp.Caching; +using System.Threading.Tasks; using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; using Volo.Abp.Settings; namespace Volo.Abp.SettingManagement { public class SettingStore : ISettingStore, ITransientDependency { - protected IDistributedCache Cache { get; } - protected ISettingRepository SettingRepository { get; } - protected IGuidGenerator GuidGenerator { get; } + protected ISettingManagementStore ManagementStore { get; } - public SettingStore( - ISettingRepository settingRepository, - IGuidGenerator guidGenerator, - IDistributedCache cache) + public SettingStore(ISettingManagementStore managementStore) { - SettingRepository = settingRepository; - GuidGenerator = guidGenerator; - Cache = cache; + ManagementStore = managementStore; } - public async Task GetOrNullAsync(string name, string providerName, string providerKey) + public 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); + return ManagementStore.GetOrNullAsync(name, providerName, providerKey); } } }