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); }
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); }