public bool TryGetMapping(string key, out ConfigurationMapping mapping)
 {
     lock (_mappings)
     {
         return(_mappings.TryGetValue(key, out mapping));
     }
 }
Exemple #2
0
        public async Task <HttpResponseMessage> InvokeService(ConfigurationMapping mapping, CancellationToken?cancellationToken)
        {
            var endpoint   = mapping.CustomEndpoint ?? _configuration.Endpoint;
            var apiToken   = mapping.CustomApiToken ?? _configuration.ApiToken;
            var httpMethod = mapping.CustomHttpMethod ?? _configuration.HttpMethod;
            var isPost     = WebRequestMethods.Http.Post == httpMethod;

            var client = _httpClientFactory.Create(endpoint);

            if (!string.IsNullOrEmpty(apiToken))
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiToken);
            }

            if (isPost)
            {
                var uriBuilder = new UriBuilder(new Uri(client.BaseAddress, mapping.Service));
                var postData   = mapping.JsonPostData?.ToString() ?? string.Empty;
                return(await client.PostAsync(uriBuilder.Uri, new StringContent(postData), cancellationToken ?? CancellationToken.None));
            }
            else
            {
                var uriBuilder = new UriBuilder(new Uri(client.BaseAddress, mapping.Service))
                {
                    Query = mapping.QueryString
                };
                return(await client.GetAsync(uriBuilder.Uri, cancellationToken ?? CancellationToken.None));
            }
        }