/// <summary>
        ///
        /// </summary>
        /// <param name="services"></param>
        /// <param name="configuration"></param>
        /// <param name="optionsConfiguration"></param>
        /// <returns></returns>
        public static IServiceCollection AddPollyRetry(this IServiceCollection services, IConfiguration configuration, Action <RetrieverOptions> optionsConfiguration = null)
        {
            var retrieverOptions = new RetrieverOptions();

            configuration.GetSection(nameof(RetrieverOptions)).Bind(retrieverOptions);
            services.Configure <RetrieverOptions>(configuration.GetSection(nameof(RetrieverOptions)));

            if (optionsConfiguration != default)
            {
                optionsConfiguration(retrieverOptions);
            }

            return(services
                   .AddTransient <IRetriever, PollyRetriever>()
                   .AddTransient(typeof(IOptionsService <>), typeof(OptionsService <>)));
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="options"></param>
 public PollyRetriever(
     IOptionsService <RetrieverOptions> options)
 {
     _options = options.Value;
 }