public void AddOrIncrementWithExpiration(IThrottleKey key, Limiter limiter) { string id = CreateThrottleKey(key, limiter); var cacheItem = _store.Get(id) as ThrottleCacheItem; if (cacheItem != null) { cacheItem.Count = cacheItem.Count + 1; } else { cacheItem = new ThrottleCacheItem() { Count = 1, Expiration = CurrentDate().Add(limiter.Period) }; } _store.Set(id, cacheItem, cacheItem.Expiration); }