コード例 #1
0
        /// <summary>
        /// Set response caching options for the request.
        /// </summary>
        /// <param name="requestBuilder">Request builder instance.</param>
        /// <param name="configure">Action to configure options.</param>
        public static FluentHttpRequestBuilder WithResponseCachingOptions(this FluentHttpRequestBuilder requestBuilder, Action <ResponseCacheHttpMiddlewareOptions> configure)
        {
            var options = new ResponseCacheHttpMiddlewareOptions();

            configure?.Invoke(options);
            return(requestBuilder.WithResponseCachingOptions(options));
        }
コード例 #2
0
        /// <summary>
        /// Use response caching middleware which get from cache or get from remote and cache responses.
        /// </summary>
        /// <param name="builder">Builder instance</param>
        /// <param name="configure">Action to configure caching options.</param>
        public static FluentHttpClientBuilder UseResponseCaching(this FluentHttpClientBuilder builder, Action <ResponseCacheHttpMiddlewareOptions>?configure)
        {
            var options = new ResponseCacheHttpMiddlewareOptions();

            configure?.Invoke(options);
            return(builder.UseResponseCaching(options));
        }
コード例 #3
0
 /// <summary>
 /// Use response caching middleware which get from cache or get from remote and cache responses.
 /// </summary>
 /// <param name="builder">Builder instance</param>
 /// <param name="options"></param>
 public static FluentHttpClientBuilder UseResponseCaching(this FluentHttpClientBuilder builder, ResponseCacheHttpMiddlewareOptions options = null)
 => builder.UseMiddleware <ResponseCacheHttpMiddleware>(options ?? new ResponseCacheHttpMiddlewareOptions());
コード例 #4
0
        /// <summary>
        /// Get response caching options for the request.
        /// </summary>
        /// <param name="request">Request to get options from.</param>
        /// <param name="defaultOptions"></param>
        /// <returns>Returns merged logging options.</returns>
        public static ResponseCacheHttpMiddlewareOptions GetResponseCachingOptions(this FluentHttpRequest request, ResponseCacheHttpMiddlewareOptions defaultOptions = null)
        {
            if (!request.Items.TryGetValue(OptionsKey, out var result))
            {
                return(defaultOptions);
            }
            var options = (ResponseCacheHttpMiddlewareOptions)result;

            if (defaultOptions == null)
            {
                return(options);
            }
            options.Matcher     = defaultOptions.Matcher;
            options.IsWriteOnly = defaultOptions.IsWriteOnly;
            return(options);
        }
コード例 #5
0
 /// <summary>
 /// Set response caching options for the request.
 /// </summary>
 /// <param name="requestBuilder">Request builder instance.</param>
 /// <param name="options">Options to set.</param>
 public static FluentHttpRequestBuilder WithResponseCachingOptions(this FluentHttpRequestBuilder requestBuilder, ResponseCacheHttpMiddlewareOptions options)
 {
     requestBuilder.Items[OptionsKey] = options;
     return(requestBuilder);
 }