public DetailReservationDTO ReservationDetail(string confirmationNumber)
        {
            List <ParmStruct> parms = new List <ParmStruct>();

            parms.Add(new ParmStruct("@ConfirmationNumber", SqlDbType.NVarChar, 12, confirmationNumber, ParameterDirection.Input));

            DataTable dt = db.GetData("spGetReservationDetail", parms);

            DetailReservationDTO detailReservation = new DetailReservationDTO()
            {
                GuestName     = dt.Rows[0][0].ToString(),
                Address       = dt.Rows[0][1].ToString(),
                HomePhone     = dt.Rows[0][2].ToString(),
                CellPhone     = dt.Rows[0][3].ToString(),
                Email         = dt.Rows[0][4].ToString(),
                CheckInDate   = (DateTime)dt.Rows[0][5],
                CheckOutDate  = (DateTime)dt.Rows[0][6],
                RoomNumber    = Convert.ToInt32(dt.Rows[0][7]),
                RoomName      = dt.Rows[0][8].ToString(),
                NumOfAdults   = Convert.ToInt32(dt.Rows[0][9]),
                NumOfChildren = Convert.ToInt32(dt.Rows[0][10]),
                BaseRate      = Convert.ToDecimal(dt.Rows[0][11]),
                DailyRate     = Convert.ToDecimal(dt.Rows[0][12]),
                TotalPrice    = Convert.ToDecimal(dt.Rows[0][13]),
            };

            return(detailReservation);
        }
        private void dgvReservation_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex > -1 && dgvReservation.Columns[e.ColumnIndex].Name == "btnDetail")
            {
                if (e.RowIndex >= 0)
                {
                    string               confirmationNumber = dgvReservation.Rows[e.RowIndex].Cells[6].Value.ToString();
                    ReservationService   service            = new ReservationService();
                    DetailReservationDTO detailReservation  = service.GetReservationDetail(confirmationNumber);

                    panel1.Visible = true;
                    string homePhone = detailReservation.HomePhone == string.Empty ? "" : $"/ {detailReservation.HomePhone}(Home Phone)";
                    string email     = detailReservation.Email == string.Empty ? "Not provided" : detailReservation.Email;

                    lblGuestName.Text          = detailReservation.GuestName;
                    lblGuestAddress.Text       = detailReservation.Address;
                    lblPhone.Text              = $"{detailReservation.CellPhone}(Cell Phone) {homePhone}";
                    lblEmail.Text              = email;
                    lblCheckIn.Text            = detailReservation.CheckInDate.ToShortDateString();
                    lblCheckOut.Text           = detailReservation.CheckOutDate.ToShortDateString();
                    lblRoomNumber.Text         = detailReservation.RoomNumber.ToString();
                    lblRoomName.Text           = detailReservation.RoomName;
                    lblNumOfGuests.Text        = $"{detailReservation.NumOfAdults} Adults, {detailReservation.NumOfChildren} Children";
                    lblBaseRate.Text           = detailReservation.BaseRate.ToString("C");
                    lblDailyRate.Text          = detailReservation.DailyRate.ToString("C");
                    lblTotalPrice.Text         = detailReservation.TotalPrice.ToString("C");
                    lblConfirmationNumber.Text = confirmationNumber;

                    foreach (Control child in this.Controls)
                    {
                        if (child != panel1)
                        {
                            child.Enabled = false;
                        }
                    }
                }
            }
        }