private void ResetExpirationTime <TValue>(CacheContext context, CacheItem <TValue> cacheItem) { if (expireWithin.HasValue && useSlidingExpiration) { context.SetIfNotExists(cacheItem); cacheItem.ExpireIn = this.expireWithin.Value; context.SetExpirationTime(cacheItem); } }
private TValue GetOrAdd <TValue>( CacheContext context, string key, TValue newValue, bool doForceOverride = false) { var newItem = CreateCacheItem(key, newValue); if (context.SetIfNotExists(newItem)) { return(newValue); } var prevValue = GetCacheItem <TValue>(context, key); if (!doForceOverride && prevValue != null && prevValue.Value is TValue) { return(prevValue.Value); } context.SetItem(newItem); return(newValue); }