/// <summary> /// Checks the <paramref name="resilience"/> to determine which resilience /// policies are enabled and adds to the <paramref name="httpClientBuilder" /> /// as appropriate. /// </summary> /// <param name="httpClientBuilder">The <see cref="IHttpClientBuilder"/> to add the policy to.</param> /// <param name="resilience">The <see cref="Resilience"/> instance with the settings for the service.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="httpClientBuilder"/> or <paramref name="resilience"/> are null.</exception> public virtual void AddResiliencePolicy(IHttpClientBuilder httpClientBuilder, Resilience resilience) { httpClientBuilder.IsNull("httpClientBuilder"); resilience.IsNull("resilience"); // Check if retry is enabled for the service if (resilience.EnableRetry) { httpClientBuilder.AddPolicyHandlerFromRegistry(ResiliencePolicy.DefaultRetry); } // Check if circuit breaking is enabled for the service if (resilience.EnableCircuitBreaking) { httpClientBuilder.AddPolicyHandlerFromRegistry(ResiliencePolicy.DefaultCircuitbreaker); } }