public async Task Handle(MessageWithAcknowledge <Foo> message, CancellationToken token) { Console.WriteLine($"Mensagen recebida: <{ message.Body.Bar }>"); if (message.AcknowledgeRequested) { if (message.Body.Bar != "error") { await _publisher.PublishAsync(message.AcknowledgeTopic, new AcknowledgeMessage { Id = message.Id, Result = Result.Okay("Sucesso") }); } else { await _publisher.PublishAsync(message.AcknowledgeTopic, new AcknowledgeMessage { Id = message.Id, Result = Result.Error("Ocorreu um erro.") }); } } }
static async Task MainAsync() { var serviceProvider = new ServiceCollection() .AddLogging(opt => { opt.AddConsole(); }) .Configure <LoggerFilterOptions>(cfg => { cfg.MinLevel = LogLevel.Trace; }) .BuildServiceProvider(); var logger = serviceProvider.GetService <ILogger <Program> >(); logger.LogDebug("Starting application"); var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); var config = builder.Build(); var producerConfig = config.GetSection("KafkaConfig").Get <ProducerConfig>(); IPublisher publisher = new KafkaProducer(producerConfig, serviceProvider.GetService <ILogger <KafkaProducer> >()); while (true) { var message = Console.ReadLine(); var typedMessage = new MessageWithAcknowledge <Foo> { Body = new Foo { Bar = message }, AcknowledgeRequested = true, AcknowledgeTopic = "poc-acknowledge" }; await publisher.PublishAsync("poc-kafka", MessageFactory.Build(typedMessage)); //await publisher.PublishAsync("poc-kafka", MessageFactory.Build(typedMessage, "poc-acknowledge")); } }
private IEnumerable <Message> OnMessageWithAcknowledgeToSend(MessageWithAcknowledge arg) { var sentDate = _dateTimeManager.GetNow(); var message = arg.Message; if (arg.From != null) { message = $"From : {arg.From.Name} \n {arg.Message}"; } var alert = new Alert { Responsible = arg.To, Status = StatusType.New }; alert.NotificationsSent.Add(sentDate); alert.Actors.Add(arg.To); _janelUnitOfWork.AlertRepository.Insert(alert); return(SendNotificationWithAcknowledge(sentDate, arg.To, (arg.To.PreferedCommunications?.FirstOrDefault() ?? CommunicationType.Email), message, null, alert)); }