public void AddOrUpdate(CacheKey key, TimedEntityTagHeaderValue eTag) { TimedEntityTagHeaderValue test; if (!TryGetValue(key, out test)) { var cacheKey = new PersistentCacheKey() { Hash = key.Hash, RoutePattern = key.RoutePattern, ETag = eTag.Tag, LastModified = eTag.LastModified }; using (var session = _documentStore.OpenSession()) { session.Store(cacheKey); session.SaveChanges(); } } else { using (var session = _documentStore.OpenSession()) { var cacheKey = session.Query<PersistentCacheKey>() .Customize(x => x.WaitForNonStaleResults()) .FirstOrDefault(x => x.Hash == key.Hash); cacheKey.ETag = eTag.Tag; cacheKey.LastModified = eTag.LastModified; session.Store(cacheKey); session.SaveChanges(); } } }
public void AddOrUpdate(CacheKey key, TimedEntityTagHeaderValue eTag) { TimedEntityTagHeaderValue test; if (!TryGetValue(key, out test)) { var cacheKey = new PersistentCacheKey() { Hash = key.Hash, RoutePattern = key.RoutePattern, ETag = eTag.Tag, LastModified = eTag.LastModified, ResourceUri = key.ResourceUri }; using (var session = _documentStore.OpenSession()) { session.Store(cacheKey); session.SaveChanges(); } } else { using (var session = _documentStore.OpenSession()) { var cacheKey = session.Query <PersistentCacheKey>() .Customize(x => x.WaitForNonStaleResults()) .FirstOrDefault(x => x.Hash == key.Hash); cacheKey.ETag = eTag.Tag; cacheKey.LastModified = eTag.LastModified; cacheKey.ResourceUri = key.ResourceUri; cacheKey.RoutePattern = key.RoutePattern; session.Store(cacheKey); session.SaveChanges(); } } }