private void dataGridViewTicketStatus_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex > -1 && e.ColumnIndex > -1)
     {
         if (dataGridViewTicketStatus.Columns[e.ColumnIndex].Name == "Book")
         {
             var data = dataGridViewTicketStatus.Rows[e.RowIndex].DataBoundItem as TrainLeftTicketStatus;
             if (data.CanBook)
             {
                 var form = new SubmitOrderRequestForm(data);
                 form.ShowDialog();
             }
             else
             {
                 MessageBox.Show(this, "该车次无票可定", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             }
         }
     }
 }
Пример #2
0
 private void OnQuickOrders(TrainLeftTicketStatus data)
 {
     if (!data.CanBook) return;
     if (!data.HasSeatTypes(_SeatTypes)) return;
     DetermineCall(() =>
     {
         if (vOrderRequestForm == null && !isTicketSuccess)
         {
             new SoundPlayer(Properties.Resources.notify).Play();
             this.Activate();
             this.BringToFront();
             QuickAttentionWorker.PauseWorking = true;
             vOrderRequestForm = new SubmitOrderRequestForm(data, _Passengers, _SeatTypes, (response) =>
             {
                 TicketdataGridView.Visible = true;
                 isTicketSuccess = true;
                 vOrderRequestForm = null;
                 #region
                 DataTable PassengerList = new DataTable();
                 var textBuilder = new StringBuilder(128);
                 var passengersHtml = StringHelper.FindString(ref response, "class=\"table_list\">", "</table>");
                 var fieldHeader = Regex.Match(passengersHtml, @"<tr[^>]*>(\s*<td[^>]*>.*?</td>\s*){12}</tr>", RegexOptions.Singleline);
                 if (fieldHeader.Success)
                 {
                     var fieldNames = new string[12];
                     int i = 0;
                     foreach (Match m in Regex.Matches(fieldHeader.Value, @"<td[^>]*>(?<name>.*?)</td>", RegexOptions.Singleline))
                     {
                         fieldNames[i] = Regex.Replace(m.Groups["name"].Value, @"\s", _m => "");
                         PassengerList.Columns.Add(fieldNames[i], typeof(string));
                         i++;
                     }
                     Match passenger = fieldHeader.NextMatch();
                     while (passenger.Success)
                     {
                         i = 0;
                         var row = PassengerList.NewRow();
                         foreach (Match m in Regex.Matches(passenger.Value, @"<td[^>]*>(?<name>.*?)</td>", RegexOptions.Singleline))
                         {
                             row[fieldNames[i++]] = Regex.Replace(m.Groups["name"].Value, @"<[^>]+/?>|\s", _m => "");
                         }
                         PassengerList.Rows.Add(row);
                         passenger = passenger.NextMatch();
                     }
                     var priceBlock = StringHelper.FindString(ref response, "<ul id=\"Num\">", "</ul>");
                     if (priceBlock != null)
                     {
                         foreach (Match m in Regex.Matches(priceBlock, "<li[^>]*>(?<val>.*?)</li>", RegexOptions.Singleline))
                         {
                             textBuilder.Append(m.Groups["val"].Value);
                             textBuilder.Append("  ");
                         }
                     }
                     TicketdataGridView.AutoGenerateColumns = true;
                     TicketdataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
                     TicketdataGridView.DataSource = PassengerList;
                     TicketdataGridView.Columns["证件号"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                 }
                 #endregion
             });
             vOrderRequestForm.FormClosed += (s, e) =>
             {
                 QuickAttentionWorker.PauseWorking = false;
                 vOrderRequestForm = null;
             };
             vOrderRequestForm.ShowDialog();
         }
     });
 }