public RateLimitHttpClient(
            IHttpClient httpClient,
            IRateLimiter rateLimiter)
        {
            _httpClient = httpClient;

            _rateLimitPolicy = new AsyncRateLimitPolicy <HttpResponseMessage>(rateLimiter, (context, exception) => Task.CompletedTask);
        }
        public RateLimitingMiddleware(
            RequestDelegate next,
            ILogger <ExceptionHandlingMiddleware> logger)
        {
            _next   = next;
            _logger = logger;

            var rateLimiter = new RateLimiter(20, TimeSpan.FromSeconds(1), 10, TimeSpan.FromSeconds(3));

            _rateLimitPolicy = new AsyncRateLimitPolicy(rateLimiter, (context, exception) => Task.CompletedTask);
        }
        private static PolicyHandler CreateRateLimitHandler(IRateLimiter rateLimiter)
        {
            var rateLimitPolicy = new AsyncRateLimitPolicy <HttpResponseMessage>(rateLimiter, (context, exception) => Task.CompletedTask);

            return(new PolicyHandler(rateLimitPolicy));
        }