private void btnSave_Click(object sender, EventArgs e) { try { //the is a max of 4 menus options for each booking if (comboMenu1.Text != "None") { FoodMenu menu1 = (FoodMenu)comboMenu1.SelectedItem; int quantity = (int)numMenu1Count.Value; if ((string)comboMenu1.Tag == "None") { if (!Meal.Add(new Meal(m_SelectedBooking, menu1, quantity))) { pushErrorMessage("Error adding a new menu."); return; } comboMenu1.Tag = ""; goto MENU_2; } if (!Meal.Update(new Meal(m_SelectedBooking, ((FoodMenu)comboMenu1.SelectedItem), 0), menu1.ID, quantity)) { pushErrorMessage(string.Format("Error submitting menu \"{0}.\" Check you aren't passing two of the same menus!", menu1.ToString())); return; } } MENU_2: if (comboMenu2.Text != "None") { FoodMenu menu2 = (FoodMenu)comboMenu2.SelectedItem; int quantity = (int)numMenu2Count.Value; if ((string)comboMenu2.Tag == "None") { if (!Meal.Add(new Meal(m_SelectedBooking, menu2, quantity))) { pushErrorMessage("Error adding a new menu."); return; } comboMenu2.Tag = ""; goto MENU_3; } if (!Meal.Update(new Meal(m_SelectedBooking, ((FoodMenu)comboMenu2.SelectedItem), 0), menu2.ID, quantity)) { pushErrorMessage(string.Format("Error submitting menu \"{0}.\" Check you aren't passing two of the same menus!", menu2.ToString())); return; } } MENU_3: if (comboMenu3.Text != "None") { FoodMenu menu3 = (FoodMenu)comboMenu3.SelectedItem; int quantity = (int)numMenu3Count.Value; if ((string)comboMenu3.Tag == "None") { if (!Meal.Add(new Meal(m_SelectedBooking, menu3, quantity))) { pushErrorMessage("Error adding a new menu."); return; } comboMenu3.Tag = ""; goto MENU_4; } if (!Meal.Update(new Meal(m_SelectedBooking, ((FoodMenu)comboMenu3.SelectedItem), 0), menu3.ID, quantity)) { pushErrorMessage(string.Format("Error submitting menu \"{0}.\" Check you aren't passing two of the same menus!", menu3.ToString())); return; } } MENU_4: if (comboMenu4.Text != "None") { FoodMenu menu4 = (FoodMenu)comboMenu4.SelectedItem; int quantity = (int)numMenu4Count.Value; if ((string)comboMenu4.Tag == "None") { if (!Meal.Add(new Meal(m_SelectedBooking, menu4, quantity))) { pushErrorMessage("Error adding a new menu."); return; } comboMenu4.Tag = ""; goto MENU_ADD_UPDATE_END; } if (!Meal.Update(new Meal(m_SelectedBooking, ((FoodMenu)comboMenu4.SelectedItem), 0), menu4.ID, quantity)) { pushErrorMessage(string.Format("Error submitting menu \"{0}.\" Check you aren't passing two of the same menus!", menu4.ToString())); return; } } MENU_ADD_UPDATE_END: MessageBox.Show("Menus Added / Updated Successfully!"); this.Close(); } catch (Exception ex) { //debugging menu addition var st = new StackTrace(ex, true); var frame = st.GetFrame(0); var line = frame.GetFileLineNumber(); //debugging end Console.WriteLine("ERROR : {0} {1}", ex.Message, line); } }