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; using XdCxRhDW.Repostory.EFContext; using XdCxRhDW.Repostory.Model; namespace XdCxRhDW.App.CorTools { public partial class XlCalculateForm : DevExpress.XtraEditors.XtraForm { List resXl = new List(); List listEph = new List(); public XlCalculateForm() { InitializeComponent(); } private async void XlCalculateForm_Load(object sender, EventArgs e) { gridControl.Init().UseSort().UseFilter().UseMultiSelect().UseRowNumber(); gridControl.DataSource = listEph; txtTle.UseDoubleClickToSelectAll(); txtTle.UseDefault().SetStringData(listXl.Select(p=>p.TwoLine)); } 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; } } listEph.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 ephRes = await HttpHelper.PostRequestAsync>(url, XlCalcMultDto); if (ephRes.code == 200) { listEph.AddRange(ephRes.data); 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 ephRes = await HttpHelper.PostRequestAsync(url, XlCalcDto); if (ephRes.code == 200) { listEph.Add(ephRes.data); gridView.RefreshData(); } } } catch (Exception ex) { Serilog.Log.Error(ex, "请求星历推算Api出错"); DxHelper.MsgBoxHelper.ShowError("星历推算错误"); } } Console.ReadLine(); } } }