Пример #1
0
        /// <summary>
        /// Http Request Async
        /// </summary>
        /// <param name="client"></param>
        /// <param name="httpMethod"></param>
        /// <param name="payLoad"></param>
        /// <param name="apiConfigSettings"></param>
        /// <param name="queryString"></param>
        /// <param name="headers"></param>
        /// <param name="contentType"></param>
        /// <returns></returns>
        public static async Task <HttpResponseMessage> RequestAsync <T>(
            this T client,
            HttpMethod httpMethod,
            IApiConfigurationSettings apiConfigSettings,
            string queryString = null,
            List <KeyValuePair <string, string> > headers = null,
            string contentType  = null,
            HttpContent payLoad = null) where T : HttpClient
        {
            using (var cancellationToken =
                       new CancellationTokenSource(TimeSpan.FromMilliseconds(apiConfigSettings.TimeoutInMs)))
            {
                var startedTime = DateTime.Now;
                try
                {
                    client.SetHttpClientDefaultRequestHeaders();
                    var requestMessage = SetHttpClientRequestMessageHeaders(headers, contentType,
                                                                            HttpClientRequestMessage(httpMethod, queryString, payLoad));
                    var httpResponseMessage = await client.SendAsync(requestMessage, cancellationToken.Token);

                    httpResponseMessage.EnsureSuccessStatusCode();
                    return(httpResponseMessage);
                }
                catch (OperationCanceledException e)
                {
                    if (!cancellationToken.Token.IsCancellationRequested)
                    {
                        throw new TimeoutException($"An HTTP request to {apiConfigSettings.BaseUrl} timed out ({(int)new TimeSpan(apiConfigSettings.TimeoutInMs).TotalSeconds} seconds.\n\n{e.Message})");
                    }
                    throw;
                }
            }
        }
Пример #2
0
 /// <summary>
 /// Customer Quotation Service
 /// </summary>
 /// <param name="logger"></param>
 /// <param name="configuration"></param>
 /// <param name="exchangeRateService"></param>
 /// <param name="segmentTaxService"></param>
 public QuotationService(ILogger <QuotationService> logger,
                         IConfiguration configuration, IExchangeRateService exchangeRateService, ISegmentTaxService segmentTaxService)
 {
     _logger          = logger;
     ExchangeSettings = configuration.GetSection("ExchangeSettings").Get <ApiConfigurationSettings>();
     TaxSettings      = configuration.GetSection("TaxSettings").Get <ApiConfigurationSettings>();
     SegmentTaxSvc    = segmentTaxService;
     ExchangeRateSvc  = exchangeRateService;
 }
 /// <summary>
 /// Default Constructor
 /// </summary>
 /// <param name="httpClient"></param>
 /// <param name="logger"></param>
 /// <param name="configuration"></param>
 public ExchangeRateService(HttpClient httpClient, ILogger <ExchangeRateService> logger, IConfiguration configuration)
 {
     _httpClient      = httpClient;
     _logger          = logger;
     ExchangeSettings = configuration.GetSection("ExchangeSettings").Get <ApiConfigurationSettings>();
 }