public void Update(IMessage message)
        {
            Guid correlationId;

            Guid.TryParse(message.CorrelationId.ToString(), out correlationId);

            if (!string.IsNullOrWhiteSpace(message.DataAsString) &&
                message.DataAsString.ToLower() == "manualorder")
            {
                var orders = GetLastMonthsOrdersForRestaurantX(correlationId, _repo);

                if (orders != null)
                {
                    var stock = _stockQuantityControl.GetStockItems(orders);
                    Restaurant.SetStockQuantity(stock);
                    Console.WriteLine("Restaurant notified of stock shipped");
                }
            }
        }
        public void UpdateStock(IMessage message)
        {
            Guid correlationId;

            Guid.TryParse(message.CorrelationId.ToString(), out correlationId);
            var order = _repo.GetOrderByCorrelationId(message.CorrelationId);

            if (order != null)
            {
                var stock = _stockQuantityControl.GetStockItems(new List <Order> {
                    order
                });
                OrderMechanism.PlaceStockOrder(stock);

                // in reality this event would not be done here but raised when the suppliers ships the stock
                // it is here for the purposes of the demo and assuming that the stock IS shipped by the supplier
                _eventPublisher.RaiseEvent(order.CorrelationId, "ManualOrder", ConfigurationManager.AppSettings["StockOrders"]);
            }
        }