/// <summary>
        /// Registers <see cref="ILykkeServiceClient"/> in Autofac container using <see cref="LykkeServiceServiceClientSettings"/>.
        /// </summary>
        /// <param name="builder">Autofac container builder.</param>
        /// <param name="settings">LykkeService client settings.</param>
        /// <param name="builderConfigure">Optional <see cref="HttpClientGeneratorBuilder"/> configure handler.</param>
        public static void RegisterLykkeServiceClient(
            [NotNull] this ContainerBuilder builder,
            [NotNull] LykkeServiceServiceClientSettings settings,
            [CanBeNull] Func <HttpClientGeneratorBuilder, HttpClientGeneratorBuilder> builderConfigure)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (string.IsNullOrWhiteSpace(settings.ServiceUrl))
            {
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(LykkeServiceServiceClientSettings.ServiceUrl));
            }

            var clientBuilder = HttpClientGenerator.HttpClientGenerator.BuildForUrl(settings.ServiceUrl)
                                .WithAdditionalCallsWrapper(new ExceptionHandlerCallsWrapper());

            clientBuilder = builderConfigure?.Invoke(clientBuilder) ?? clientBuilder.WithoutRetries();

            builder.RegisterInstance(new LykkeServiceClient(clientBuilder.Create()))
            .As <ILykkeServiceClient>()
            .SingleInstance();
        }
 public static void RegisterLykkeServiceClient(this ContainerBuilder builder, LykkeServiceServiceClientSettings settings, ILog log)
 {
     builder.RegisterLykkeServiceClient(settings?.ServiceUrl, log);
 }