Exemplo n.º 1
0
 public HttpResponseMessageWrapper Invoke(HttpResponseMessageWrapper response)
 {
     if (response != null && response.Response != null && response.Response.Headers != null)
     {
         response.Response.Headers.ETag = ETagStore.GetOrCreateETag(response.CurrentCacheKey);
     }
     return(response);
 }
Exemplo n.º 2
0
        public HttpResponseMessageWrapper Invoke(HttpRequestMessageWrapper request)
        {
            if (request.Request.Method != HttpMethod.Get ||
                !request.Request.Headers.IfNoneMatch.Contains(ETagStore.GetOrCreateETag(request.CurrentCacheKey)))
            {
                return(null);
            }

            return(new HttpResponseMessageWrapper(
                       request.Request.CreateResponse(HttpStatusCode.NotModified)));
        }
Exemplo n.º 3
0
        public void ETagInvalidateArea()
        {
            CacheAttribute filter = new CacheAttribute {
                DeclaringType = typeof(ExternalInvalidatedController),
                VaryByPath    = true
            };
            var     url     = new Uri("http://epiwiki.se/test");
            Browser browser = new Browser()
            {
                Url = url
            };

            browser.MakeRequest(filter);

            ETagStore.Invalidate(new CacheKey(typeof(ExternalInvalidatedController)));

            browser = new Browser(browser.ETag)
            {
                Url = url
            };
            browser.MakeRequest(filter);
            Assert.IsTrue(browser.ControllerExecuted);
        }
 public ETagResponder()
 {
     ETagStore = new ETagStore();
 }
Exemplo n.º 5
0
 public HttpResponseMessageWrapper Invoke(HttpResponseMessageWrapper response)
 {
     ETagStore.Invalidate(response.CurrentCacheKey);
     return(response);
 }
 public ETagValidator()
 {
     ETagStore = new ETagStore();
 }