예제 #1
0
        public async Task <bool> SetEntity <T>(string key, T item, TimeSpan?maxAge) where T : class, new()
        {
            Debug.WriteLine($"DocumentCache: Setting ${key}");

            var fullName = _getFullKey <T>(key);

            var i = new XDocumentCacheItem <T>();

            i.Item = item;
            i.Id   = fullName;

            i.DateStamp = DateTime.UtcNow;
            i.MaxAge    = maxAge;

            var result = await _getRepo <T>().AddOrUpdate(i);

            return(result != null);
        }
예제 #2
0
        bool _validateAge <T>(XDocumentCacheItem <T> item, TimeSpan?maxAge = null)
            where T : class, new()
        {
            if (item.MaxAge == null && maxAge == null)
            {
                return(true);
            }

            if (maxAge != null)
            {
                item.MaxAge = maxAge;
            }

            var dt           = DateTime.UtcNow;
            var dtWithMaxAge = item.DateStamp.Add(item.MaxAge.Value);

            return(dtWithMaxAge < dt);
        }