private void InitTicket(string ExtraMsg) { string[] split = ExtraMsg.Split('\r'); textBlock4.Text = split[0].Split('\n')[0]; textBlock5.Text = split[0].Split('\n')[2]; textBlock6.Text = split[0].Split('\n')[1]; ClientWindow.BuyTicket ticket = new ClientWindow.BuyTicket(); for (int i = 1; i < split.Length - 1; i++) { ticket.TrainID = int.Parse(split[i].Split('\n')[0]); ticket.EnterStationTime = split[i].Split('\n')[1]; ticket.LeaveStationTimeIn = split[i].Split('\n')[2]; DateTime dt = DateTime.Parse(split[i].Split('\n')[2]).AddTicks(-DateTime.Parse(split[i].Split('\n')[1]).Ticks); ticket.TimeTake = (dt.Minute + dt.Hour * 60).ToString() + "min"; ticket.TicketRemain = int.Parse(split[i].Split('\n')[3]); ticket.TicketPrice = double.Parse(split[i].Split('\n')[4]); ticket.LineName = textBlock6.Text; ticket.EnterStationName = textBlock4.Text; ticket.LeaveStationName = textBlock5.Text; canBuyTicket.Add(ticket); } if (canBuyTicket.Count == 0) { MessageBox.Show("所选时间段内未找到车次!"); } }
} //确认线路 private void CallBuyTicketWindow(string Enter, string Line, string Leave) { ClientWindow.TicketQueryInfo subinfo1 = new ClientWindow.TicketQueryInfo(); subinfo1.EnterStationNumber = int.Parse(Enter); subinfo1.Line = int.Parse(Line); subinfo1.LeaveStationNumber = int.Parse(Leave); subinfo1.StartTime = this.ticketQueryInfo.StartTime; subinfo1.EndTime = this.ticketQueryInfo.EndTime; string info1Msg = Enter + "\n" + Line + "\n" + Leave + "\n" + ticketQueryInfo.StartTime.ToString() + "\n" + ticketQueryInfo.EndTime.ToString(); TcpClient tcpClient = null; NetworkStream networkStream = null; try { tcpClient = new TcpClient(); tcpClient.Connect(myIPAddress, ServerPort); //建立与服务器的连接 networkStream = tcpClient.GetStream(); if (networkStream.CanWrite) { TTS_Core.QueryDataPackage data = new TTS_Core.QueryDataPackage(UserID, myIPAddress + ":" + MyPort.ToString(), "server", TTS_Core.QUERYTYPE.K_TICKETINFO_QUERY, info1Msg); byte[] sendBytes = data.DataPackageToBytes(); //注册数据包转化为字节数组 networkStream.Write(sendBytes, 0, sendBytes.Length); } var newClient = tcpListener.AcceptTcpClient(); var bytes = ReadFromTcpClient(newClient); //获取数据 var package = new TTS_Core.QueryDataPackage(bytes); subinfo1.EnterStationName = package.ExtraMsg.Split('\r')[0].Split('\n')[0]; subinfo1.LineName = package.ExtraMsg.Split('\r')[0].Split('\n')[1]; subinfo1.LeaveStationName = package.ExtraMsg.Split('\r')[0].Split('\n')[2]; info1Msg = package.ExtraMsg; } catch { MessageBox.Show("指定时段内无可选车次!"); return; } finally { if (networkStream != null) { networkStream.Close(); } tcpClient.Close(); } BuyTicketWindow buy = new BuyTicketWindow(subinfo1, info1Msg); buy.ShowDialog(); if (buy.selectTicket.TrainID != 0) { allBuyTicket.Add(buy.selectTicket); } } //调起买票窗体
} //清空 private void button2_Click(object sender, RoutedEventArgs e) { searchBuyTicket = new ClientWindow.AllBuyTicket(); for (int i = 0; i < canBuyTicket.Count; i++) { searchBuyTicket.Add(canBuyTicket[i]); } //Copy if (precision.IsChecked == true) { if (textBox_tic1.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TrainID.ToString() != textBox_tic1.Text) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //TrainID if (textBox_tic2.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].EnterStationTime.ToString() != textBox_tic2.Text) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //EnterStationTime if (textBox_tic3.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].LeaveStationTimeIn.ToString() != textBox_tic3.Text) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //LeaveStationTimeIn if (textBox_tic4.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TimeTake.ToString() != textBox_tic4.Text) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //TimeTake } //精确搜索 else { if (textBox_tic1.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TrainID.ToString().IndexOf(textBox_tic1.Text) == -1) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //TrainID if (textBox_tic2.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].EnterStationTime.ToString().IndexOf(textBox_tic2.Text) == -1) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //EnterStationTime if (textBox_tic3.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].LeaveStationTimeIn.ToString().IndexOf(textBox_tic3.Text) == -1) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //LeaveStationTimeIn if (textBox_tic4.Text != string.Empty) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TimeTake.ToString().IndexOf(textBox_tic4.Text) == -1) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //TimeTake } //模糊搜索 if (textBox_tic5.Text != string.Empty) { int BuyNumber = -1; if (int.TryParse(textBox_tic5.Text, out BuyNumber) == false || BuyNumber < 0) { MessageBox.Show("请输入正确的余票筛选数量!"); return; } for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TicketRemain < BuyNumber) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //TicketRemain if (textBox_tic6.Text != string.Empty) { int PriceUpper = -1; if (int.TryParse(textBox_tic6.Text, out PriceUpper) == false || PriceUpper <= 0) { MessageBox.Show("请输入正确的价格筛选数量!"); return; } for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TicketPrice > PriceUpper) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //TicketPriceUpper if (textBox_tic7.Text != string.Empty) { int PriceLower = -1; if (int.TryParse(textBox_tic7.Text, out PriceLower) == false || PriceLower < 0) { MessageBox.Show("请输入正确的价格筛选数量!"); return; } for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TicketPrice < PriceLower) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //TicketPriceLower if (checkBox_remain.IsChecked == true) { for (int i = 0; i < searchBuyTicket.Count; i++) { if (searchBuyTicket[i].TicketRemain <= 0) { searchBuyTicket.Remove(searchBuyTicket[i]); i--; } } } //仅看有余票 listView.ItemsSource = searchBuyTicket; } //筛选