Esempio n. 1
0
        public void Listen(Action <string> message)
        {
            using (var consumer = new Consumer <Null, string>(brokerConfig, null, deserializer))
            {
                consumer.Subscribe(ProcessPaymentTopic);
                consumer.OnMessage += (_, msg) => {
                    message(msg.Value);

                    var value   = msg.Value;
                    var handler = value.Deserialize <Handlers.ProcessPaymentHandler>();

                    var request = new ProcessPaymentRequest
                    {
                        OrderId        = handler.OrderId,
                        InstantBuyKey  = handler.InstantBuyKey,
                        Brand          = (CreditCardBrand)handler.Brand,
                        Number         = handler.Number,
                        ExpMonth       = handler.ExpMonth,
                        ExpYear        = handler.ExpYear,
                        HolderName     = handler.HolderName,
                        SecurityCode   = handler.SecurityCode,
                        SaveCreditCard = handler.SaveCreditCard
                    };
                    _paymentAppService.Process(request);
                };

                var cancelled = false;
                Console.CancelKeyPress += (_, e) =>
                {
                    cancelled = true;
                    e.Cancel  = true;
                };

                while (!cancelled)
                {
                    consumer.Poll(-1);
                }
            }
        }