public async Task <HttpResponseMessage> ExecuteRequest(HttpRequestMessage httpRequest, EventId eventId) { if (httpRequest is null) { throw new ArgumentNullException(nameof(httpRequest)); } if (string.IsNullOrWhiteSpace(_config.Contact)) { throw new InvalidOperationException("No Request can be send when contact info hasn't been provided."); } using (HttpClient client = GetHttpClient()) { client.AddCyborgianStatesUserAgent(AppSettings.VERSION, _config.Contact); _logger.LogDebug(eventId, LogMessageBuilder.Build(eventId, $"Executing {httpRequest.Method}-Request to {httpRequest.RequestUri}")); HttpResponseMessage response = await client.SendAsync(httpRequest).ConfigureAwait(false); if (!response.IsSuccessStatusCode) { _logger.LogError(eventId, LogMessageBuilder.Build(eventId, $"Request finished with response: {(int)response.StatusCode}: {response.ReasonPhrase}")); } else { _logger.LogDebug(eventId, LogMessageBuilder.Build(eventId, $"Request finished with response: {(int)response.StatusCode}: {response.ReasonPhrase}")); } return(response); } }