using DevExpress.XtraEditors; using DevExpress.XtraTreeList.Data; using ExtensionsDev; using Newtonsoft.Json; using PosResAnalysis; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Entity; using System.Drawing; using System.IO; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Forms; using XdCxRhDw.Dto; using XdCxRhDW.Core; using XdCxRhDW.Core.Api; using XdCxRhDW.Repostory.EFContext; using XdCxRhDW.Repostory.Model; namespace XdCxRhDW.App.CorTools { public partial class XlCalculateForm : DevExpress.XtraEditors.XtraForm { List resXl = new List(); List list = new List(); public XlCalculateForm() { InitializeComponent(); } private async void XlCalculateForm_Load(object sender, EventArgs e) { gridControl.Init().UseSort().UseFilter().UseMultiSelect().UseRowNumber(); gridControl.DataSource = list; LoadData(); txtTle.UseDoubleClickToSelectAll(); txtTle.UseDefault().SetStringData(resXl); } public async Task LoadData() { try { resXl.Clear(); using (RHDWContext db = new RHDWContext()) { var res = await db.XlInfos.OrderBy(p => p.SatName).OrderByDescending(p => p.TimeBJ).ToListAsync(); resXl.AddRange(res.Select(s => $"{s.Line1};{s.Line2}")); } } catch (Exception ex) { Serilog.Log.Error(ex, "加载星历信息异常"); DxHelper.MsgBoxHelper.ShowError("加载星历信息异常"); } } private async void btnCalculate_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtEndTime.Text) && string.IsNullOrEmpty(txtSpanSeconds.Text)) { DxHelper.MsgBoxHelper.ShowInfo("请填写推算间隔"); return; } var startTime = Convert.ToDateTime(txtStartTime.EditValue); var endTime = Convert.ToDateTime(txtEndTime.EditValue); if (!string.IsNullOrEmpty(txtStartTime.Text) && !string.IsNullOrEmpty(txtEndTime.Text)) { if (endTime < startTime) { DxHelper.MsgBoxHelper.ShowInfo("结束时间不能大于开始时间"); return; } if ((endTime - startTime).TotalHours > 24) { DxHelper.MsgBoxHelper.ShowInfo("开始时间和结束时间不能相差超过24小时"); return; } } list.Clear(); var settings = new SysSetings(); using (RHDWContext db = new RHDWContext()) { settings = await db.SysSetings.FirstOrDefaultAsync(); } using (var client = new HttpClient()) { try { if (!string.IsNullOrEmpty(txtEndTime.Text) && !string.IsNullOrEmpty(txtSpanSeconds.Text)) { string url = string.Format("http://{0}:{1}/Api/Xl/CalcMult", IpHelper.GetLocalIp(), settings.HttpPort); var XlCalcMultDto = new XlCalcMultDto() { tleStr = txtTle.Text, start = startTime, end = endTime, spanSeconds = (int)txtSpanSeconds.EditValue }; var content = new StringContent(JsonConvert.SerializeObject(XlCalcMultDto), System.Text.Encoding.UTF8, "application/json"); var ephRes = HttpHelper.PostRequest>(url, content); list.AddRange(ephRes); gridView.RefreshData(); } else { string url = string.Format("http://{0}:{1}/Api/Xl/Calc", IpHelper.GetLocalIp(), settings.HttpPort); var XlCalcDto = new XlCalcDto() { tleStr = txtTle.Text, dt = Convert.ToDateTime(txtStartTime.EditValue) }; var content = new StringContent(JsonConvert.SerializeObject(XlCalcDto), System.Text.Encoding.UTF8, "application/json"); var ephRes = HttpHelper.PostRequest(url, content); list.Add(ephRes); gridView.RefreshData(); } } catch (Exception ex) { Serilog.Log.Error(ex, "请求星历推算Api出错"); DxHelper.MsgBoxHelper.ShowError("星历推算错误"); } } Console.ReadLine(); } } }