Exemplo n.º 1
0
        private void HandleOrderEvent(RetailerOrderRequestMessage message)
        {
            SynchronizedWriteLine("Order request received:\n" +
                                  "Order Id: " + message.OrderId + "\n" +
                                  "Product Id: " + message.ProductId + "\n" +
                                  "Country: " + message.Country
                                  );

            int     daysForDelivery = country == message.Country ? 2 : 10;
            decimal shippingCharge  = country == message.Country ? 5 : 10;

            Product requestedProduct = products.FirstOrDefault(p => p.ProductId == message.ProductId);

            int itemsInStock = requestedProduct != null ? requestedProduct.ItemsInStock : 0;

            OrderReplyMessage replyMessage = new OrderReplyMessage
            {
                WarehouseId     = this.id,
                OrderId         = message.OrderId,
                ProductId       = message.ProductId,
                CustomerId      = message.CustomerId,
                ItemsInStock    = itemsInStock,
                DaysForDelivery = daysForDelivery,
                ShippingCharge  = shippingCharge
            };

            // Send the reply message to the Retailer
            bus.Send(message.ReplyTo, replyMessage);
            SynchronizedWriteLine("Reply sent back to retailer");
        }
Exemplo n.º 2
0
        private void HandleOrderEvent(RetailerOrderRequestMessage message)
        {
            SynchronizedWriteLine("Order request received: (" +
                                  "Product Id: " + message.ProductId +
                                  " Country: " + message.CountryCode + ")"
                                  );

            int     daysForDelivery = country == message.CountryCode ? 2 : 10;
            decimal shippingCharge  = country == message.CountryCode ? 5 : 10;

            Product requestedProduct = products.FirstOrDefault(p => p.ProductId == message.ProductId);

            int itemsInStock = requestedProduct != null ? requestedProduct.ItemsInStock : 0;

            SynchronizedWriteLine("In stock: " + itemsInStock);
            OrderReplyMessage replyMessage = new OrderReplyMessage
            {
                WarehouseId     = this.id,
                ProductId       = message.ProductId,
                CustomerId      = message.CustomerId,
                ItemsInStock    = itemsInStock,
                DaysForDelivery = daysForDelivery,
                ShippingCharge  = shippingCharge
            };

            bus.Send <OrderReplyMessage>("ReplyQueueWarehouse", replyMessage);
            SynchronizedWriteLine("Reply sent back to retailer");
        }