Ejemplo n.º 1
0
        protected override async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            Console.WriteLine("OrderProcessing Service Started");

            while (!cancellationToken.IsCancellationRequested)
            {
                using (var consumer = new ConsumerBuilder <Ignore, string>(consumerConfig).Build())
                {
                    consumer.Subscribe("orderrequests");

                    while (!cancellationToken.IsCancellationRequested)
                    {
                        var result = consumer.Consume(cancellationToken);
                        // handle the message
                        var order = JsonConvert.DeserializeObject <OrderRequest>(result.Message.Value);

                        Console.WriteLine($"Info: OrderHandler => Processing the order for {order.productname}");
                        order.status = OrderStatus.COMPLETED;

                        var producerWrapper = new ProducerWrapper(producerConfig, "readytoship");
                        await producerWrapper.PublishMessage(JsonConvert.SerializeObject(order));
                    }

                    consumer.Close();
                }
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> PostAsync([FromBody] OrderRequest value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var order = JsonConvert.SerializeObject(value);

            Console.WriteLine("=============");
            Console.WriteLine("Info: OrderController => Post => Received a new purchase order:");
            Console.WriteLine(order);
            Console.WriteLine("=============");

            var producer = new ProducerWrapper(this.config, "orderrequests");
            await producer.PublishMessage(order);

            return(Created($"TransactionId", "Your order is in progress"));
        }