/// <summary>
		/// Configures ASP.Net's Cache policy based on properties set
		/// </summary>
		/// <param name="policy">cache policy to set</param>
		void ICachePolicyConfigurer.Configure(HttpCachePolicy policy)
		{
			policy.SetAllowResponseInBrowserHistory(allowInHistory);
			policy.SetCacheability(cacheability);
			policy.SetOmitVaryStar(omitVaryStar);
			policy.SetRevalidation(revalidation);
			policy.SetSlidingExpiration(slidingExpiration);
			policy.SetValidUntilExpires(validUntilExpires);

			if (duration != 0)
			{
				policy.SetExpires(DateTime.Now.AddSeconds(duration));
			}

			if (varyByContentEncodings != null)
			{
				foreach (var header in varyByContentEncodings.Split(','))
				{
					policy.VaryByContentEncodings[header.Trim()] = true;
				}
			}

			if (varyByCustom != null)
			{
				policy.SetVaryByCustom(varyByCustom);
			}

			if (varyByHeaders != null)
			{
				foreach (var header in varyByHeaders.Split(','))
				{
					policy.VaryByHeaders[header.Trim()] = true;
				}
			}

			if (varyByParams != null)
			{
				foreach (var param in varyByParams.Split(','))
				{
					policy.VaryByParams[param.Trim()] = true;
				}
			}

			if (cacheExtension != null)
			{
				policy.AppendCacheExtension(cacheExtension);
			}

			if (setEtagFromFileDependencies)
			{
				policy.SetETagFromFileDependencies();
			}

			if (setLastModifiedFromFileDependencies)
			{
				policy.SetLastModifiedFromFileDependencies();
			}

			if (setNoServerCaching)
			{
				policy.SetNoServerCaching();
			}

			if (setNoStore)
			{
				policy.SetNoStore();
			}

			if (setNoTransforms)
			{
				policy.SetNoTransforms();
			}

			if (etag != null)
			{
				policy.SetETag(etag);
			}

			if (isLastModifiedSet)
			{
				policy.SetLastModified(lastModified);
			}

			if (isMaxAgeSet)
			{
				policy.SetMaxAge(TimeSpan.FromSeconds(maxAge));
			}

			if (isProxyMaxAgeSet)
			{
				policy.SetProxyMaxAge(TimeSpan.FromSeconds(proxyMaxAge));
			}
		}
 public override void SetAllowResponseInBrowserHistory(bool allow)
 {
     w.SetAllowResponseInBrowserHistory(allow);
 }
 public override void SetAllowResponseInBrowserHistory(bool allow)
 {
     _httpCachePolicy.SetAllowResponseInBrowserHistory(allow);
 }
		/// <summary>
		/// Configures ASP.Net's Cache policy based on properties set
		/// </summary>
		/// <param name="policy">cache policy to set</param>
		void ICachePolicyConfigurer.Configure(HttpCachePolicy policy)
		{
			policy.SetCacheability(cacheability);
			policy.SetSlidingExpiration(slidingExpiration);
			policy.SetValidUntilExpires(validUntilExpires);
			policy.SetAllowResponseInBrowserHistory(allowInHistory);
			
			if (duration != 0)
			{
				policy.SetExpires(DateTime.Now.AddSeconds(duration));
			}

			if (varyByCustom != null)
			{
				policy.SetVaryByCustom(varyByCustom);
			}
			
			if (varyByHeaders != null)
			{
				foreach(String header in varyByHeaders.Split(','))
				{
					policy.VaryByHeaders[header.Trim()] = true;
				}
			}

			if (varyByParams != null)
			{
				foreach(String param in varyByParams.Split(','))
				{
					policy.VaryByParams[param.Trim()] = true;
				}
			}

			if (etag != null)
			{
				policy.SetETag(etag);
			}
		}