public async Task SetAsync <T>(CacheKeySettings keySettings, T value, CancellationToken cancellation = default)
        {
            var cacheEntryOptions = new MemoryCacheEntryOptions()
                                    .SetAbsoluteExpiration(keySettings.Expiry);

            _cache.Set <T>(keySettings.Key, value, cacheEntryOptions);
        }
Exemple #2
0
 public async Task SetAsync <T>(CacheKeySettings keySettings, T value, CancellationToken cancellation)
 {
     var options = new DistributedCacheEntryOptions {
         AbsoluteExpirationRelativeToNow = keySettings.Expiry
     };
     var jsonString = JsonConvert.SerializeObject(value);
     await _cacheService.SetStringAsync(keySettings.Key, jsonString, options);
 }
        public async Task <T> GetAsync <T>(CacheKeySettings keySettings, Func <Task <T> > GetValueFuncAsync, CancellationToken cancellation = default)
        {
            if (_cache.TryGetValue <T>(keySettings.Key, out T cachedValue))
            {
                return(cachedValue);
            }

            T value = await GetValueFuncAsync();

            await SetAsync(keySettings, value);

            return(value);
        }
Exemple #4
0
        public async Task <T> GetAsync <T>(CacheKeySettings keySettings, Func <Task <T> > GetValueFuncAsync, CancellationToken cancellation)
        {
            var stringValue = await _cacheService.GetStringAsync(keySettings.Key, cancellation);

            if (stringValue != null)
            {
                return(JsonConvert.DeserializeObject <T>(stringValue));
            }

            T value = await GetValueFuncAsync();

            await SetAsync(keySettings, value, cancellation);

            return(value);
        }