public RegionalRequester(IRiotApiConfig config, string route) { _config = config; _appRateLimit = new RateLimit(RateLimitType.Application, config); _client.BaseAddress = new Uri($"https://{route}{RiotRootUrl}"); _client.DefaultRequestHeaders.Add(RiotKeyHeader, config.ApiKey); }
private RiotApi(IRiotApiConfig config) { if (null == config) { throw new ArgumentException($"{nameof(config)} cannot be null."); } _requestManager = new RequestManager(config); }
/// <summary> /// Creates a new RiotApi instance with the provided configuration. /// </summary> /// <param name="config">RiotApiConfig to use.</param> /// <returns>RiotApi instance using supplied configuration.</returns> public static RiotApi NewInstance(IRiotApiConfig config) { return(new RiotApi(config)); }
public RateLimit(RateLimitType rateLimitType, IRiotApiConfig config) { _rateLimitType = rateLimitType; _config = config; }
public RequestManager(IRiotApiConfig config) { _config = config; _concurrentRequestSemaphore = new SemaphoreSlim(_config.MaxConcurrentRequests); }