public override void Set(string key, object value, CacheItemPolicy policy, string regionName = null) { ValidatePolicy(policy); try { DateTime utcExpiry; if (policy.SlidingExpiration != NoSlidingExpiration) { utcExpiry = DateTime.UtcNow + policy.SlidingExpiration; value = new SlidingExpiryCacheItem(value, policy.SlidingExpiration); } else { utcExpiry = policy.AbsoluteExpiration.UtcDateTime; } cache.Set(key, value, utcExpiry, regionName); } catch (Exception e) { LogUtility.LogError("Error in Set: " + e.Message); if (configuration.ThrowOnError) { throw; } } }
public override object AddOrGetExisting(string key, object value, CacheItemPolicy policy, string regionName = null) { ValidatePolicy(policy); try { DateTime utcExpiry; if (policy.SlidingExpiration != NoSlidingExpiration) { utcExpiry = DateTime.UtcNow + policy.SlidingExpiration; value = new SlidingExpiryCacheItem(value, policy.SlidingExpiration); } else { utcExpiry = policy.AbsoluteExpiration.UtcDateTime; } object oldValue = cache.AddOrGetExisting(key, value, utcExpiry, regionName); oldValue = HandleSlidingExpiry(key, oldValue, regionName); return(oldValue); } catch (Exception e) { LogUtility.LogError("Error in AddOrGetExisting: " + e.Message); if (configuration.ThrowOnError) { throw; } } return(null); }
private object HandleSlidingExpiry(string key, object value, string regionName) { SlidingExpiryCacheItem item = value as SlidingExpiryCacheItem; if (item == null) { return(value); } cache.ResetExpiry(key, DateTime.UtcNow + item.SlidingExpiration, regionName); return(item.Value); }