コード例 #1
0
 //summoner base not default constructor
 internal SummonerBase(string id, string name, RateLimitedRequester requester, Region region)
 {
     this.requester = requester;
     Region         = region;
     Name           = name;
     Id             = long.Parse(id);
 }
コード例 #2
0
ファイル: SummonerBase.cs プロジェクト: RejectKid/RiotSharp
 //summoner base not default constructor
 internal SummonerBase(string id, string name, RateLimitedRequester requester, Region region)
 {
     this.requester = requester;
     Region = region;
     Name = name;
     Id = long.Parse(id);
 }
コード例 #3
0
        /// <summary>
        /// Adds and configures RiotSharp's services
        /// </summary>
        /// <param name="serviceCollection"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public static IServiceCollection AddRiotSharp(this IServiceCollection serviceCollection, Action <RiotSharpOptions> options)
        {
            if (serviceCollection == null)
            {
                throw new ArgumentNullException(nameof(serviceCollection));
            }

            var riotSharpOptions = new RiotSharpOptions();

            options(riotSharpOptions);

            if (riotSharpOptions.TournamentApi.ApiKey == null && riotSharpOptions.RiotApi.ApiKey == null)
            {
                throw new ArgumentNullException("No api key provided.", innerException: null);
            }

            if (riotSharpOptions.RiotApi.ApiKey != null)
            {
                var rateLimitedRequester = new RateLimitedRequester(riotSharpOptions.RiotApi.ApiKey,
                                                                    riotSharpOptions.RiotApi.RateLimits);
                var requester = new Requester(riotSharpOptions.RiotApi.ApiKey);
                serviceCollection.AddSingleton <ITournamentRiotApi>(serviceProvider =>
                                                                    new TournamentRiotApi(rateLimitedRequester));

                if (riotSharpOptions.RiotApi.UseMemoryCache)
                {
                    serviceCollection.AddSingleton <ICache, MemoryCache>();
                }
                else if (riotSharpOptions.RiotApi.UseDistributedCache)
                {
                    serviceCollection.AddSingleton <ICache, DistributedCache>();
                }
                else if (riotSharpOptions.RiotApi.UseHybridCache)
                {
                    serviceCollection.AddSingleton <ICache, HybridCache>(
                        serviceProvider => new HybridCache(
                            serviceProvider.GetRequiredService <IMemoryCache>(),
                            serviceProvider.GetRequiredService <IDistributedCache>(),
                            riotSharpOptions.RiotApi.SlidingExpirationTime));
                }
                else if (riotSharpOptions.RiotApi.UseCache)
                {
                    serviceCollection.AddSingleton <ICache, Cache>();
                }
                else
                {
                    serviceCollection.AddSingleton <ICache, PassThroughCache>();
                }

                serviceCollection.AddSingleton <IStaticEndpointProvider>(serviceProvider =>
                                                                         new StaticEndpointProvider(new Requester(riotSharpOptions.RiotApi.ApiKey), serviceProvider.GetRequiredService <ICache>(),
                                                                                                    riotSharpOptions.RiotApi.SlidingExpirationTime));

                serviceCollection.AddSingleton <IStaticDataEndpoints>(serviceProvider =>
                                                                      new StaticDataEndpoints(serviceProvider.GetRequiredService <IStaticEndpointProvider>()));

                serviceCollection.AddSingleton <IRiotApi>(serviceProvider =>
                                                          new RiotApi(rateLimitedRequester, requester, serviceProvider.GetRequiredService <IStaticEndpointProvider>()));
            }

            if (riotSharpOptions.TournamentApi.ApiKey != null)
            {
                var rateLimitedRequester = new RateLimitedRequester(riotSharpOptions.TournamentApi.ApiKey,
                                                                    riotSharpOptions.TournamentApi.RateLimits);
                serviceCollection.AddSingleton <ITournamentRiotApi>(serviceProvider =>
                                                                    new TournamentRiotApi(rateLimitedRequester, riotSharpOptions.TournamentApi.UseStub));
            }

            return(serviceCollection);
        }
コード例 #4
0
 internal SummonerBase()
 {
     requester = Requesters.RiotApiRequester;
 }
コード例 #5
0
ファイル: SummonerBase.cs プロジェクト: RejectKid/RiotSharp
 internal SummonerBase()
 {
     requester = Requesters.RiotApiRequester;
 }
コード例 #6
0
 internal SummonerBase()
 {
     requester = RateLimitedRequester.Instance;
 }
コード例 #7
0
 internal SummonerBase()
 {
     requester = RateLimitedRequester.Instance;
 }