Exemple #1
0
        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.")
                    });
                }
            }
        }
Exemple #2
0
        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"));
            }
        }
Exemple #3
0
        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));
        }