Exemplo n.º 1
0
        public static IClusterClient CreateClusterClient(IHttpClientConfiguration configuration, ILog log)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            return(new ClusterClient(
                       log,
                       config =>
            {
                config.Logging.LogReplicaRequests = false;
                config.Logging.LogResultDetails = false;

                configuration.Apply(config);

                if (configuration.RetryStrategy != null)
                {
                    var idempotentRequests = configuration.IdempotentRequests ??
                                             HttpMethodBasedIdempotentRequestSpecification.OnlyGetMethodIsIdempotent;
                    config.RetryPolicy = new AdHocRetryPolicy((request, _, _) => idempotentRequests.IsIdempotent(request));
                    config.RetryStrategyEx = new RetryStrategyExAdapter(configuration.RetryStrategy.CreateRetryStrategy());
                }
            }));
        }