コード例 #1
0
        public async Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            var result = await GetWithResponseCode <TResponse>(request);

            if (IsNot200RangeResponseCode(result.StatusCode))
            {
                return(default);
コード例 #2
0
        public async Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            AddHeaders();

            var response = await _httpClient.GetAsync(request.GetUrl).ConfigureAwait(false);

            if (response.StatusCode.Equals(HttpStatusCode.NotFound))
            {
                return(default);
コード例 #3
0
        public async Task <HttpStatusCode> GetResponseCode(IGetApiRequest request)
        {
            await AddAuthenticationHeader();

            AddVersionHeader(request.Version);
            var response = await HttpClient.GetAsync(request.GetUrl).ConfigureAwait(false);

            return(response.StatusCode);
        }
コード例 #4
0
        public async Task <HttpStatusCode> GetResponseCode(IGetApiRequest request)
        {
            var requestMessage = new HttpRequestMessage(HttpMethod.Get, request.GetUrl);

            requestMessage.AddVersion(request.Version);
            await AddAuthenticationHeader(requestMessage);

            var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false);

            return(response.StatusCode);
        }
コード例 #5
0
        public async Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            await AddAuthenticationHeader();

            AddVersionHeader(request.Version);

            var response = await HttpClient.GetAsync(request.GetUrl).ConfigureAwait(false);

            if (!response.IsSuccessStatusCode)
            {
                return(default);
コード例 #6
0
        public async Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            AddHeaders();

            var response = await _httpClient.GetAsync(request.GetUrl).ConfigureAwait(false);

            response.EnsureSuccessStatusCode();
            var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <TResponse>(json));
        }
        public static async Task <bool> IsHealthy <T>(IGetApiClient <T> client, IGetApiRequest request)
        {
            try
            {
                var status = await client.GetResponseCode(request);

                return(status == HttpStatusCode.OK);
            }
            catch
            {
                return(false);
            }
        }
コード例 #8
0
        public Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            var accountLegalEntityPublicHashedId = _httpContextAccessor.HttpContext.GetRouteValue("AccountLegalEntityPublicHashedId").ToString();
            var accountLegalEntityId             = _encodingService.Decode(accountLegalEntityPublicHashedId, EncodingType.PublicAccountLegalEntityId);

            if (typeof(TResponse) == typeof(Cohort))
            {
                var cohortRequest = (GetCohortRequest)request;

                return(Task.FromResult((TResponse)CreateCohort(cohortRequest.CohortId, accountLegalEntityId)));
            }

            throw new NotImplementedException();
        }
        public async Task <T> GetData <T>(IGetApiRequest request, string cacheKey, Func <ApiResponse <T>, bool> requestCheck)
        {
            var cachedItem = await _cacheStorageService.RetrieveFromCache <T>(cacheKey);

            if (cachedItem != null)
            {
                return(cachedItem);
            }

            var requestData = await _client.GetWithResponseCode <T>(request);

            if (requestData.StatusCode == HttpStatusCode.NotFound || !requestCheck(requestData))
            {
                return(default);
コード例 #10
0
        public async Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            await AddAuthenticationHeader();

            AddVersionHeader(request.Version);

            request.BaseUrl = _configuration.Url;
            var response = await _httpClient.GetAsync(request.GetUrl).ConfigureAwait(false);

            response.EnsureSuccessStatusCode();
            var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <TResponse>(json));
        }
コード例 #11
0
        public async Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            var accessToken = await GetAccessTokenAsync();

            using (var client = new HttpClient())//not unit testable using directly
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

                var response = await client.GetAsync(request.GetUrl).ConfigureAwait(false);

                response.EnsureSuccessStatusCode();
                var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                return(JsonConvert.DeserializeObject <TResponse>(json));
            }
        }
コード例 #12
0
        public async Task <TResponse> Get <TResponse>(IGetApiRequest request)
        {
            AddHeaders();

            var response = await _httpClient.GetAsync(request.GetUrl).ConfigureAwait(false);

            if (!response.IsSuccessStatusCode && response.StatusCode == HttpStatusCode.NotFound)
            {
                throw new NotFoundException <TResponse>();
            }
            response.EnsureSuccessStatusCode();

            var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <TResponse>(json));
        }
コード例 #13
0
        private Task <TResponse> GetRequest <TResponse>(IGetApiRequest request, string keyName, out bool updateCache)
        {
            Task <TResponse> levelsTask;

            updateCache = false;

            var itemFromCache =
                _cacheStorageService.RetrieveFromCache <TResponse>(keyName).Result;

            if (itemFromCache != null)
            {
                levelsTask = Task.FromResult(itemFromCache);
            }
            else
            {
                levelsTask  = _apiClient.Get <TResponse>(request);
                updateCache = true;
            }

            return(levelsTask);
        }
コード例 #14
0
 public Task <ApiResponse <TResponse> > GetWithResponseCode <TResponse>(IGetApiRequest request)
 {
     return(_apiClient.GetWithResponseCode <TResponse>(request));
 }
コード例 #15
0
 public Task <HttpStatusCode> GetResponseCode(IGetApiRequest request)
 {
     return(_apiClient.GetResponseCode(request));
 }
コード例 #16
0
 public Task <TResponse> Get <TResponse>(IGetApiRequest request)
 {
     return(_apiClient.Get <TResponse>(request));
 }
コード例 #17
0
        public Task <TResponse> GetRequest <TResponse>(ICoursesApiClient <CoursesApiConfiguration> client, IGetApiRequest request, string keyName, out bool updateCache)
        {
            Task <TResponse> itemsTask;

            updateCache = false;

            var itemFromCache = _cacheStorageService.RetrieveFromCache <TResponse>(keyName).Result;

            if (itemFromCache != null)
            {
                itemsTask = Task.FromResult(itemFromCache);

                if (itemFromCache.GetType() == typeof(GetStandardsListResponse))
                {
                    if (itemFromCache is GetStandardsListResponse castItem && castItem.Total < 1)
                    {
                        itemsTask   = client.Get <TResponse>(request);
                        updateCache = true;
                    }
                }
            }
            else
            {
                itemsTask   = client.Get <TResponse>(request);
                updateCache = true;
            }

            return(itemsTask);
        }
 public Task <TResponse> Get <TResponse>(IGetApiRequest request)
 {
     throw new System.NotImplementedException();
 }
 public Task <ApiResponse <TResponse> > GetWithResponseCode <TResponse>(IGetApiRequest request)
 {
     throw new System.NotImplementedException();
 }
コード例 #20
0
 public Task <HttpStatusCode> GetResponseCode(IGetApiRequest request)
 {
     throw new System.NotImplementedException();
 }