public void Put(String key, CacheTimeSpan timeSpan, object @object) { Remove(key); if (@object.IsNotNull()) { CacheStore.Add( new CacheItem(key, @object), new CacheItemPolicy { AbsoluteExpiration = DateTime.Now + GetTimeSpan(timeSpan) }); } }
public T Get <T>(string key, CacheTimeSpan timeSpan, Func <T> getItem) { var cacheItem = CacheStore.Get(key); if (cacheItem.IsNull() && getItem.IsNotNull()) { cacheItem = getItem(); if (cacheItem != null) { Put(key, timeSpan, cacheItem); } } return((T)cacheItem); }
private TimeSpan GetTimeSpan(CacheTimeSpan cacheTimeSpan) { int minutes = 10; switch (cacheTimeSpan) { case CacheTimeSpan.Infinite: minutes = 2 * 24 * 60; break; case CacheTimeSpan.FiveMinutes: minutes = 5; break; case CacheTimeSpan.ThirtySeconds: return(TimeSpan.FromSeconds(30)); case CacheTimeSpan.OneMinute: minutes = 1; break; case CacheTimeSpan.TwoMinutes: minutes = 2; break; case CacheTimeSpan.Hour: minutes = 60; break; case CacheTimeSpan.TenMinutes: minutes = 10; break; case CacheTimeSpan.FifteenMinutes: minutes = 15; break; case CacheTimeSpan.ThirtyMinutes: minutes = 30; break; } return(TimeSpan.FromMinutes(minutes)); }