예제 #1
0
        private BasecampClient(
            Uri apiUri,
            IAccessTokenSource accessTokenSource,
            IRateLimiter rateLimiter,
            IResponseMessageCache responseMessageCache,
            string userAgent,
            HttpClientPool httpClientPool
            )
        {
            if (apiUri == null)
            {
                throw new ArgumentNullException(nameof(apiUri));
            }
            if (accessTokenSource == null)
            {
                throw new ArgumentNullException(nameof(accessTokenSource));
            }

            this.apiUri               = UriUtils.EnsureTrailingSlash(apiUri);
            this.accessTokenSource    = accessTokenSource;
            this.rateLimiter          = rateLimiter ?? ConstantRateLimiter.Default;
            this.responseMessageCache = responseMessageCache;
            this.userAgent            = userAgent ?? UserAgent.GenerateDefault();
            this.httpClientPool       = httpClientPool ?? HttpClientPool.Default;
        }
예제 #2
0
        private AccessTokenSource(Uri tokenUri, OAuthOptions oauthOptions, string refreshToken, string userAgent, HttpClientPool httpClientPool)
        {
            if (tokenUri == null)
            {
                throw new ArgumentNullException(nameof(tokenUri));
            }
            if (oauthOptions == null)
            {
                throw new ArgumentNullException(nameof(oauthOptions));
            }
            if (refreshToken == null)
            {
                throw new ArgumentNullException(nameof(refreshToken));
            }

            this.tokenUri       = tokenUri;
            this.oauthOptions   = oauthOptions;
            this.refreshToken   = refreshToken;
            this.userAgent      = userAgent ?? UserAgent.GenerateDefault();
            this.httpClientPool = httpClientPool ?? HttpClientPool.Default;
        }