/// <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)); }
/// <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)); }
/// <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());
/// <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); }
/// <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); }