Example #1
0
        /// <summary>
        /// Sets the Cache-Control header and optionally the Expires and Vary headers.
        /// </summary>
        /// <param name="response">The <see cref="IResponse"/> instance.</param>
        /// <param name="cacheOptions">A <see cref="CacheOptions"/> object to specify the cache settings.</param>
        public static void SetCacheOptions(this IResponse response, CacheOptions cacheOptions)
        {
            if (cacheOptions == null)
            {
                return;
            }
            if (cacheOptions.Disable)
            {
                response.DisableCache();
                return;
            }
            response.SetHeader(HeaderKeys.CacheControl, cacheOptions.ToHeaderString());
            if (cacheOptions.AbsoluteExpiry.HasValue)
            {
                response.SetHeader(HeaderKeys.Expires, cacheOptions.AbsoluteExpiry.Value.ToString("R"));
            }

            if (cacheOptions.VaryByHeaders != null && cacheOptions.VaryByHeaders.Count > 0)
            {
                response.SetHeader(HeaderKeys.Vary, string.Join(", ", cacheOptions.VaryByHeaders));
            }
        }
        /// <summary>
        /// Sets the Cache-Control header and optionally the Expires and Vary headers.
        /// </summary>
        /// <param name="response">The <see cref="IResponse"/> instance.</param>
        /// <param name="cacheOptions">A <see cref="CacheOptions"/> object to specify the cache settings.</param>
        public static void SetCacheOptions(this IResponse response, CacheOptions cacheOptions)
        {
            if (cacheOptions == null) return;
            if (cacheOptions.Disable)
            {
                response.DisableCache();
                return;
            }
            response.SetHeader(HeaderKeys.CacheControl, cacheOptions.ToHeaderString());
            if (cacheOptions.AbsoluteExpiry.HasValue)
            {
                response.SetHeader(HeaderKeys.Expires, cacheOptions.AbsoluteExpiry.Value.ToString("R"));
            }

            if (cacheOptions.VaryByHeaders != null && cacheOptions.VaryByHeaders.Count > 0)
            {
                response.SetHeader(HeaderKeys.Vary, string.Join(", ", cacheOptions.VaryByHeaders));
            }
        }