bool _validateAge <T>(XCacheItem <T> cacheItem) where T : class, new() { if (cacheItem.MaxAge == null) { return(true); } var ts = DateTime.UtcNow.Subtract(cacheItem.DateStamp); return(ts < cacheItem.MaxAge); }
void _updateItem <T>(T cacheItem, XCacheItem <T> cacheWrapper) where T : class, new() { var asCache = cacheItem as ICacheInfo; if (asCache == null) { return; } asCache.CacheId = cacheWrapper.Id; asCache.CacheDateStamp = cacheWrapper.DateStamp; }
public async Task <XCacheItem <T> > Set <T>(string key, T item, TimeSpan?maxAge) where T : class, new() { var cacheItem = new XCacheItem <T>(); cacheItem.DateStamp = DateTime.UtcNow; cacheItem.Item = item; cacheItem.Key = key; cacheItem.MaxAge = maxAge; if (maxAge != null && maxAge.Value > TimeSpan.FromDays(7)) { maxAge = TimeSpan.FromDays(7); } var result = await _redisCache.SetEntity(key, cacheItem, maxAge); return(cacheItem); }
public async Task <XCacheItem <T> > Set <T>(string key, T item, TimeSpan?maxAge) where T : class, new() { var t = typeof(T); Dictionary <string, object> dict = null; if (_memoryCache != null) { if (!_memoryCache.ContainsKey(t)) { _memoryCache.Add(t, new Dictionary <string, object>()); } dict = _memoryCache[t]; } else { dict = new Dictionary <string, object>(); } XCacheItem <T> cacheItem = null; if (dict.ContainsKey(key)) { cacheItem = dict[key] as XCacheItem <T>; } if (cacheItem == null) { cacheItem = new XCacheItem <T>(); dict[key] = cacheItem; } cacheItem.DateStamp = DateTime.UtcNow; cacheItem.MaxAge = maxAge; cacheItem.Item = item; cacheItem.Key = key; return(cacheItem); }