/// <summary> /// Button:Submit /// </summary> private void button1_Click(object sender, EventArgs e) { // Add the dish to the guest order GuestOrderEntity gOrder = RestaurantViewModel.RestaurantEntity.GuestOrderList.Find((t) => t.OrderId == this.BindingGuestOrderId); for (int i = 0; i < this.listBox1.Items.Count; i++) { var cDish = RestaurantViewModel.RestaurantEntity.Menu.Find( (t) => String.Compare(t.Name, this.listBox1.Items[i].ToString(), true) == 0); gOrder.AddDish(cDish.Clone()); } // Generate a Kitchen Order KitchenOrderEntity kOrder = new KitchenOrderEntity(this.BindingGuestOrderId); RestaurantViewModel.RestaurantEntity.KitchenOrderList.Add(kOrder); // State transition var handler = RestaurantViewModel.ActiveTaskHandlerList.Find( (x) => ((x is AddItemTaskHandler) && ((AddItemTaskHandler)x).GuestOrderId == gOrder.OrderId)) as AddItemTaskHandler; handler.Submit(); // Refresh the front end RestaurantViewModel.WaiterFormReference.RefreshOrderList(); this.Close(); }