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"); }
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"); }