async Task RunAsync()
        {
            this.cosmosDBProducerConfiguration = new ConfigurationBuilder()
                                                 .AddJsonFile("cosmosProducerSettings.json")
                                                 .Build();
            this.consumerRouterConfiguration = new ConfigurationBuilder()
                                               .AddJsonFile("consumerRouterSettings.json")
                                               .Build();

            this.cosmosDBProducerSettings     = ConfigHelper.LoadCosmosProducerSettings(this.cosmosDBProducerConfiguration);
            this.cosmosConsumerRouterSettings = ConfigHelper.LoadCosmosConsumerRouterSettings(this.consumerRouterConfiguration);

            if (this.cosmosConsumerRouterSettings.Host.ToLower() == "kafka")
            {
                this.InitKafkaConsumer();
            }
            else if (this.cosmosConsumerRouterSettings.Host.ToLower() == "cosmos")
            {
                await InitCosmosDBConsumerAsync();
            }
            else
            {
                throw new Exception($"Unsupported host: {this.cosmosConsumerRouterSettings.Host}");
            }

            this.eventsReader = new CosmosDBEventsReader(cosmosDBProducerSettings);
            await eventsReader.StartAsync(HandleChangesAsync);
        }
Exemple #2
0
 public KafkaProducer(EventHubKafkaAccount eventHubKafkaAccount, ConsumerRouterSettings consumerRouterSettings)
 {
     this.eventHubKafkaAccount   = eventHubKafkaAccount;
     this.consumerRouterSettings = consumerRouterSettings;
 }