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); }
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))); }
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(); }
public HttpResponseMessageWrapper Invoke(HttpResponseMessageWrapper response) { ETagStore.Invalidate(response.CurrentCacheKey); return(response); }
public ETagValidator() { ETagStore = new ETagStore(); }