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();
                }
            }
        }
Beispiel #2
0
        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();
                }
            }
        }