/// <summary> /// 批量查询并下载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonDays_Click(object sender, EventArgs e) { this.textCon.Text += "\r\n"; code = this.textCode.Text; CoScheduling.Core.DAL.SatelliteOrbit dal_satelliteOrbit = new CoScheduling.Core.DAL.SatelliteOrbit(); SpaceTrack spacetrack = new SpaceTrack(); DateTime startDay = dateTimePicker3.Value; DateTime endDay = dateTimePicker2.Value; double days = (endDay - startDay).TotalDays; int daynum = Convert.ToInt32(days); this.progressBarBat.Refresh(); this.progressBarBat.Visible = true; this.progressBarBat.Minimum = 0; this.progressBarBat.Maximum = daynum; progressBarBat.Step = 1; for (int i = 0; i <= daynum; i++) { progressBarBat.PerformStep(); if (dal_satelliteOrbit.Exists(startDay.AddDays(i))) { return; } quaryStr = spacetrack.GetSpaceTrack(getNorad(), startDay.AddDays(i), startDay.AddDays(i + 1), this.textName.Text, code); try { if (!String.IsNullOrEmpty(quaryStr)) { List <CoScheduling.Core.Model.SatelliteOrbit> list = new List <CoScheduling.Core.Model.SatelliteOrbit>(); list = LoadTle(quaryStr); DateTime tleDate = startDay.AddDays(i).Date; foreach (CoScheduling.Core.Model.SatelliteOrbit orbit in list) { orbit.SAT_ORBITDATE = tleDate; dal_satelliteOrbit.Add(orbit); } this.textCon.Text += startDay.AddDays(i).ToShortDateString() + ":保存成功!\r\n"; } else { MessageBox.Show("请先执行查询生成!"); this.textCon.Text += startDay.AddDays(i).ToShortDateString() + ":下载失败,网络故障!\r\n"; continue; } } catch (System.Exception ex) { this.textCon.Text += startDay.AddDays(i).ToShortDateString() + ":查询错误,具体原因:\r\n" + ex.ToString() + "\r\n"; } } this.progressBarBat.Visible = false; //写入更新日志 CoScheduling.Core.Model.SATELLITE_UPDATE satelliteUpdate = new CoScheduling.Core.Model.SATELLITE_UPDATE(); CoScheduling.Core.DAL.SATELLITE_UPDATE dal_satelliteUpdate = new CoScheduling.Core.DAL.SATELLITE_UPDATE(); satelliteUpdate.UPDATE_TABLE = "T_PUB_SATELLITE"; satelliteUpdate.UPDATE_LOG = this.textCon.Text; satelliteUpdate.UPDATE_TIME = System.DateTime.Now; dal_satelliteUpdate.Add(satelliteUpdate); MessageBox.Show("批量下载任务完成!"); }
/// <summary> /// 单次查询下载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonDownload_Click(object sender, EventArgs e) { //保存在数据库中 try { if (this.checkDate.Checked) { List <CoScheduling.Core.Model.SatelliteOrbit> list = new List <CoScheduling.Core.Model.SatelliteOrbit>(); CoScheduling.Core.DAL.SatelliteOrbit dal_satelliteOrbit = new CoScheduling.Core.DAL.SatelliteOrbit(); list = LoadTle(quaryStr); //检查T_PUB_SATELLITEORBIT是否已经存在该日期的星历,如果存在就不执行了 DateTime tleDate = this.dateTimePicker1.Value.Date; if (dal_satelliteOrbit.Exists(tleDate)) { MessageBox.Show(tleDate + "卫星轨道数据已存在,无需重新下载!"); return; } //赋予每条数据所选日期并插入数据库 foreach (CoScheduling.Core.Model.SatelliteOrbit orbit in list) { orbit.SAT_ORBITDATE = tleDate; dal_satelliteOrbit.Add(orbit); } //写入更新日志 CoScheduling.Core.Model.SATELLITE_UPDATE satelliteUpdate = new CoScheduling.Core.Model.SATELLITE_UPDATE(); CoScheduling.Core.DAL.SATELLITE_UPDATE dal_satelliteUpdate = new CoScheduling.Core.DAL.SATELLITE_UPDATE(); satelliteUpdate.UPDATE_TABLE = "T_PUB_SATELLITE"; satelliteUpdate.UPDATE_LOG = tleDate + "卫星轨道数据下载成功!"; satelliteUpdate.UPDATE_TIME = System.DateTime.Now; dal_satelliteUpdate.Add(satelliteUpdate); MessageBox.Show(tleDate + "卫星轨道数据下载成功!"); } else { List <CoScheduling.Core.Model.T_PUB_NEWORBIT> list = new List <CoScheduling.Core.Model.T_PUB_NEWORBIT>(); CoScheduling.Core.DAL.T_PUB_NEWORBIT dal_satelliteOrbit = new CoScheduling.Core.DAL.T_PUB_NEWORBIT(); list = LoadTleNew(quaryStr); //清空轨道数据 dal_satelliteOrbit.Delete(); DateTime tleDate = System.DateTime.Now.AddDays(-1); //插入私有轨道数据 foreach (CoScheduling.Core.Model.T_PUB_NEWORBIT orbit in list) { orbit.SAT_ORBITDATE = tleDate; dal_satelliteOrbit.Add(orbit); } MessageBox.Show("卫星轨道资源配置成功!"); } this.textCon.Text = ""; } catch (System.Exception ex) { MessageBox.Show("请先进行查询在,在右侧显示查询结果后再点击下载!"); this.textCon.Text = ""; } }