Example #1
0
        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}");
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
 public Task <HttpStatusCode> Send(MessageData.MessageData message, CancellationToken cancellationToken, BrokerStrategy strategy)
 {
     _logger.LogInformation($"Sending {message}...");
     return(SendInternal(new ByteArrayContent(message.Content), cancellationToken, strategy));
 }