/* Send order to kitchen and subsequently clear order data */ private void DialogBoxAcceptExecute(object parameter) { POSOrder order = new POSOrder(); int numOfOrderItems = 0; int iterationCounter = 0; // prepare order for submission to service for (int i = 0; i < Enum.GetNames(typeof(menuItemType)).Length; i++) { foreach (MenuItem item in menuOrderLists[i]) { numOfOrderItems++; } } order.menuItems = new POSMenuItem[numOfOrderItems]; for (int i = 0; i < Enum.GetNames(typeof(menuItemType)).Length; i++) { for (int j = 0; j < menuOrderLists[i].Count; j++) { POSMenuItem item = new POSMenuItem(); item.Price = menuOrderLists[i][j].Price; item.Product = menuOrderLists[i][j].Product; item.ProductType = (POSMenuItemEnum)menuOrderLists[i][j].ProductType; item.Quantity = menuOrderLists[i][j].Quantity; order.menuItems[iterationCounter++] = item; } } order.SubTotal = float.Parse(Subtotal.Substring(1, Subtotal.Length - 1), CultureInfo.InvariantCulture.NumberFormat); order.Total = float.Parse(Total.Substring(1, Total.Length - 1), CultureInfo.InvariantCulture.NumberFormat); // send order information to service eventAggregator.GetEvent <PlaceOrderEvent>().Publish(order); // delete all items in current order foreach (ObservableCollection <MenuItem> list in orderModel.menuOrderLists) { list.Clear(); } // reset selected indices for (int i = 0; i < POSConstants.NUM_MENU_ORDER_TYPES; i++) { menuOrderListsSelectedIndex[i] = -1; } // recalculate new order price calcOrderPrice(); // increment number of orders incrementOrder(); // recheck order data removeOrderItemBtnICommand.RaiseCanExecuteChanged(); // hide gray overlay takeOrderGrayOverlay = Visibility.Hidden; OnPropertyChanged("takeOrderGrayOverlay"); }