void OnFinishScratchARow(int rownum, HBQueryInfo scratchinfo) { if (InvokeRequired) { BeginInvoke(new Action(() => { hbinfolist.Add(scratchinfo); flightgrid.Rows[rownum].Cells["flightno"].Value = scratchinfo.flightno; flightgrid.Rows[rownum].Cells["sourcepos"].Value = scratchinfo.sourcepos; flightgrid.Rows[rownum].Cells["destpos"].Value = scratchinfo.destpos; flightgrid.Rows[rownum].Cells["takeoffplace"].Value = scratchinfo.takeoffplace; flightgrid.Rows[rownum].Cells["arriveplace"].Value = scratchinfo.arriveplace; flightgrid.Rows[rownum].Cells["leaveplan"].Value = scratchinfo.leaveplan; flightgrid.Rows[rownum].Cells["leavetime"].Value = scratchinfo.leavetime; flightgrid.Rows[rownum].Cells["arriveplan"].Value = scratchinfo.arriveplan; flightgrid.Rows[rownum].Cells["arrivetime"].Value = scratchinfo.arrivetime; flightgrid.Rows[rownum].Cells["estimatedleavetime"].Value = scratchinfo.estimatedleavetime; flightgrid.Rows[rownum].Cells["estimatedarrivetime"].Value = scratchinfo.estimatedarrivetime; flightgrid.Rows[rownum].Cells["gate"].Value = scratchinfo.gate; flightgrid.Rows[rownum].Cells["status"].Value = scratchinfo.status; flightgrid.Rows[rownum].Cells["flighttime"].Value = String.Format("{0:yyyy年MM月dd日}", dateTimePicker1.Value); flightgrid.Update(); progressBar1.Value = (int)Math.Round(((100 / (decimal)flightgrid.RowCount) * rownum)); })); } }
public void LoadHangBanData() { Dictionary<string, string> welcomeparams = new Dictionary<string, string>(); OnStartQuery(); int i = 0; foreach (var item in flightlist) { try { HBQueryInfo rst = new HBQueryInfo(); rst.flightno = item.ToUpper(); RequestFirstPage(rst.flightno); if (!isRunning) { return; } var secondresp = RequestSecondPage(rst.flightno); HBQueryRst qrst = JsonConvert.DeserializeObject<HBQueryRst>(secondresp); if (qrst == null || qrst.segmentDetails == null) { } rst.sourcepos = qrst.segmentDetails[0].departureCity; rst.destpos = qrst.segmentDetails[0].arrivalCity; rst.takeoffplace = qrst.segmentDetails[0].departureCityAirportName; rst.arriveplace = qrst.segmentDetails[0].arrivalCityAirportName; rst.status = qrst.segmentDetails[0].flightStatus; string estDepTime = RetrieveEstimatedDepartureTime(rst.flightno, qrst.segmentDetails[0].estimatedDepartureTime); string schdDepTime = RetrieveScheduledDepartureTime(rst.flightno, qrst.segmentDetails[0].scheduledDepartureTime); string actDepTime = RetrieveActualDepartureTime(rst.flightno, qrst.segmentDetails[0].actualDepartureTime); string gate = RetrieveGate(rst.flightno, qrst.segmentDetails[0].gate); string estArriveTime = RetrieveEstimatedArriveTime(rst.flightno, qrst.segmentDetails[0].scheduledArrivalTime); string schdArriveTime = RetrieveScheduledArriveTime(rst.flightno, qrst.segmentDetails[0].scheduledDepartureTime); string actArriveTime = RetrieveActualArriveTime(rst.flightno, qrst.segmentDetails[0].actualArrivalTime); rst.leaveplan = estDepTime.Replace('.', ':'); rst.leavetime = actDepTime.Replace('.', ':'); rst.arriveplan = estArriveTime.Replace('.', ':'); rst.arrivetime = actArriveTime.Replace('.', ':'); rst.estimatedleavetime = schdDepTime.Replace('.', ':'); rst.estimatedarrivetime = schdArriveTime.Replace('.', ':'); rst.gate = gate.Replace('.', ':'); OnFinishScratchARow(i, rst); } catch (System.Exception ex) { } i++; } OnFinishScratchAllPage(); }