// Button 'Lagre' // Validate input and update database record private void buttonEditBookingConfirm_Click(object sender, EventArgs e) { // Validation variables Boolean checkedin = false; Boolean guestchanged = false; Boolean guestconfirm = true; // Display error messages if value is not selected if (listBoxGuest.SelectedIndex == -1) { MessageBox.Show("Select a guest before saving entry"); } if (!roomchecked || roomid == null) { MessageBox.Show("Select a room before saving entry"); } // Make sure guest and room is selected and reservationid set if (listBoxGuest.SelectedIndex > -1 && roomchecked && roomid != null && reservationid > 0) { //Reference variables string datefrom = datePickerArrival.Value.ToString("yyyy-MM-dd"); string dateto = datePickerDeparture.Value.ToString("yyyy-MM-dd"); int guestid = Convert.ToInt32(listBoxGuest.SelectedValue); string remark; if (string.IsNullOrWhiteSpace(textBoxRemark.Text)) { remark = null; } else { remark = textBoxRemark.Text; } ValidateInput(); // Check all relevant fields for input if (validinput) { // Check if reservation is checked in if (DBGetData.GetRoomCheckedin(reservationid) > 0) { checkedin = true; } if (checkedin) { new StatusMessage("Room reservation has already checked in."); } // Check if guestid has changed MySqlDataReader getReservationGuest = DBGetData.GetRoomreservationGuest(reservationid, guestid); if (getReservationGuest.Read()) { guestchanged = true; } getReservationGuest.Dispose(); // Give warning if guest has changed and ask for confirmation if (!guestchanged) { DialogResult guestDifferent = MessageBox.Show("You have changed the guest for this reservation" + "\nAre you sure you want to continue?", "Warning!", MessageBoxButtons.YesNo); if (guestDifferent == DialogResult.No) { // Cancel edit and reload data guestconfirm = false; LoadDataBooking(); // Clear flowlayoutpanel and set parameter to enable drag and drop flowLayoutPanel1.Controls.Clear(); roomchecked = false; } } if (!checkedin && guestconfirm) { DBSetData.RoomreservationEdit(reservationid, guestid, roomid, datefrom, dateto, remark); // Refresh datagridview, close form and display new StatusMessage bookingForm.DisplayDefaultRoom(); bookingForm.Refresh(); this.Close(); new StatusMessage("Reservation for roomnumber " + roomid + " saved in database and previous roomnumber released."); } } } }