private string GetUri(BrokerStrategy strategy) { Uri apiConfig; switch (strategy) { case BrokerStrategy.SomeEvents: apiConfig = _apiConfig.CurrentValue.EventsConfig; break; default: apiConfig = _apiConfig.CurrentValue.DefaultConfig; break; } return($"{apiConfig.Host}:{apiConfig.Port}/{apiConfig.Url}"); }
public void Subscribe(BrokerStrategy strategy) { string topic; switch (strategy) { case BrokerStrategy.EventsRetry: topic = $"{_kafkaConfig.CurrentValue.Topic}_retry"; break; case BrokerStrategy.SomeEvents: topic = _kafkaConfig.CurrentValue.SomeEventTopic; break; default: topic = _kafkaConfig.CurrentValue.Topic; break; } }
private async Task <HttpStatusCode> SendInternal(HttpContent httpContent, CancellationToken cancellationToken, BrokerStrategy strategy) { try { var request = new HttpRequestMessage(HttpMethod.Post, GetUri(strategy)) { Content = httpContent }; request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); _logger.LogInformation( $"Request:\nMethod: {request.Method}, RequestUri: {request.RequestUri}, Version: {request.Version}, content: {request.Content}"); var response = await _httpClient.SendAsync(request, cancellationToken); _logger.LogInformation( $"Response:\nStatusCode: {response.StatusCode}, ReasonPhrase: {response.ReasonPhrase}, Version: {response.Version}"); return(response.StatusCode); } catch (Exception e) { _logger.LogError($"{e.Message}"); return(0); } }
public Task <HttpStatusCode> Send(MessageData.MessageData message, CancellationToken cancellationToken, BrokerStrategy strategy) { _logger.LogInformation($"Sending {message}..."); return(SendInternal(new ByteArrayContent(message.Content), cancellationToken, strategy)); }