protected virtual async Task <SettingCacheItem> GetCacheItemAsync(string name, string providerName, string providerKey) { var cacheKey = CalculateCacheKey(name, providerName, providerKey); var cacheItem = await Cache.GetAsync(cacheKey).ConfigureAwait(false); if (cacheItem != null) { return(cacheItem); } var setting = await SettingRepository.FindAsync(name, providerName, providerKey).ConfigureAwait(false); cacheItem = new SettingCacheItem(setting?.Value); await Cache.SetAsync( cacheKey, cacheItem ).ConfigureAwait(false); return(cacheItem); }
protected virtual string CalculateCacheKey(string name, string providerName, string providerKey) { return(SettingCacheItem.CalculateCacheKey(name, providerName, providerKey)); }