public async Task ProccessMessage(KafkaOptions kafkaOptions, IServiceScope serviceScope, string message) { IKafkaServiceFactory kafkaFactory = serviceScope.ServiceProvider .GetRequiredService <IKafkaServiceFactory>(); IFactory factory = serviceScope.ServiceProvider .GetRequiredService <IFactory>(); this.manager = new PersonManager(factory); this.adaptor = factory.GetAdaptor(); KafkaProducerService producerService = kafkaFactory.GetProducerService ( kafkaOptions.Settings, kafkaOptions.Producers[0] ); if (int.TryParse(message, out int id)) { KafkaProtocolModel kafkaProtocol = this.GetProtocol(message); switch (kafkaProtocol.Head.Action) { case "QUERY": await this.ProcessQuery(producerService); break; case "ADD_PERSON": await this.ProcessAddPerson(kafkaProtocol.Data[0], producerService); break; } } else { var carID = int.Parse(message); await this.RemoveCar(carID); } }
public KafkaFactory(IKafkaServiceFactory kafkaServiceFactory, IOptions <KafkaOptions> kafkaOptions) { this.kafkaServiceFactory = kafkaServiceFactory; this.kafkaOptions = kafkaOptions.Value; }