123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- using DataSimulation.Repostory;
- using DataSimulation.Repostory.EFContext;
- using DataSimulation.Repostory.Model;
- using DevExpress.Utils.About;
- using DevExpress.XtraEditors.Controls;
- using DxHelper;
- using ExtensionsDev;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Data.Entity;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace DataSimulation.Forms.EditForms
- {
- public partial class TaskEditor : DevExpress.XtraEditors.XtraForm
- {
- public TaskInfo info;
- public TaskEditor()
- {
- InitializeComponent();
- //this.layoutControl1.UseDefault();
- this.Text = "添加任务";
- info = new TaskInfo();
- this.StartPosition = FormStartPosition.CenterParent;
- List<RadioGroupItem> radioGroups = new List<RadioGroupItem>();
- var values = Enum.GetValues(typeof(EnumSimulationType));
- foreach (var item in values)
- {
- radioGroups.Add(new RadioGroupItem(Convert.ToInt32(item), ((EnumSimulationType)item).GetEnumDisplayName()));
- }
- this.radioSimulationType.Properties.Items.AddRange(radioGroups.ToArray());
- this.radioSimulationType.SelectedIndex = 0;
-
- }
- public TaskEditor(TaskInfo info)
- : this()
- {
- this.Text = "编辑任务";
- this.info = info;
- }
- private async void TaskEditor_Load(object sender, EventArgs e)
- {
- mapControl.UseDefalutOptions()
- .UseClearAll()
- .UseDistanceLine()
- .UseMarkDot()
- .UseExportImg()
- .UseExportXlsx()
- .UseExportCsv()
- .UseFlightLine()
- .SetMapLayerType(null)
- .UseDrawRect(rect =>
- {
- (double startLon, double startLat, double centerLon, double centerLat, double endLon, double endLat, double lonRange, double latRange) = rect;
- });
- var hjList =await SimulationInfoCache.GetAllAsync();
- this.txtHj.UseDefault().SetData(hjList, nameof(SimulationInfo.SimulationName)).UseDoubleClickToSelectAll();
- using (SimulationContext db = new SimulationContext())
- {
- var sats = await db.SatInfos.ToListAsync();
- this.txtMainSat.UseDefault().SetData(sats, nameof(SatInfo.Sat)).UseDoubleClickToSelectAll();
- this.txtAdjaSat1.UseDefault().SetData(sats, nameof(SatInfo.Sat)).UseDoubleClickToSelectAll();
- this.txtAdjaSat2.UseDefault().SetData(sats, nameof(SatInfo.Sat)).UseDoubleClickToSelectAll();
- var ants = await db.AntInfos.ToListAsync();
- foreach (var item in ants)
- {
- this.txtTx.Properties.Items.Add(new ImageComboBoxItem(item.AntName, item.ID));
- }
- var refs = await db.RefInfos.ToListAsync();
- foreach (var item in refs)
- {
- this.txtRefStation.Properties.Items.Add(new ImageComboBoxItem(item.RefName, item.ID));
- }
- }
- if (this.Text == "编辑任务" && info != null)
- {
- using (SimulationContext db = new SimulationContext())
- {
- var satMain = await db.SatInfos.Where(w => w.SatCode == info.MainSat).FirstOrDefaultAsync();
- var satAdja1 = await db.SatInfos.Where(w => w.SatCode == info.Adja1Sat).FirstOrDefaultAsync();
- var satAdja2 = await db.SatInfos.Where(w => w.SatCode == info.Adja2Sat).FirstOrDefaultAsync();
- this.txtTaskName.Text = info.TaskName;
- this.radioSimulationType.SelectedIndex = (int)info.SimulationType;
- this.txtMainSat.EditValue = satMain;
- this.txtAdjaSat1.EditValue = satAdja1;
- this.txtAdjaSat2.EditValue = satAdja2;
- this.txtTx.EditValue = info.AntID;
- this.txtRefStation.EditValue = info.RefID;
- this.txtFreqUp.EditValue = info.Freq * (decimal)1e-6;
- this.txtBand.EditValue = info.Band * (decimal)1e-6;
- this.txtSpeed.EditValue = info.Speed;
- }
- }
- }
- /// <summary>
- /// 验证信息
- /// </summary>
- private void validation()
- {
- try
- {
- dxErrorProvider.ClearErrors();
- if (txtTaskName.EditValue == null)
- {
- dxErrorProvider.SetError(txtTaskName, "请填写任务名");
- return;
- }
- if (radioSimulationType.SelectedIndex == -1)
- {
- dxErrorProvider.SetError(radioSimulationType, "请选择仿真类型");
- return;
- }
- var posType = (EnumSimulationType)radioSimulationType.Properties.Items[radioSimulationType.SelectedIndex].Value;
- if (posType == EnumSimulationType.X3TwoDto)
- {
- if (txtMainSat.EditValue == null)
- {
- dxErrorProvider.SetError(txtMainSat, "请选择主星");
- return;
- }
- if (txtAdjaSat1.EditValue == null)
- {
- dxErrorProvider.SetError(txtAdjaSat1, "请选择邻星1");
- return;
- }
- if (txtAdjaSat2.EditValue == null)
- {
- dxErrorProvider.SetError(txtAdjaSat2, "请选择邻星2");
- return;
- }
- }
- if (txtTx.EditValue == null)
- {
- dxErrorProvider.SetError(txtTx, "请选择天线");
- return;
- }
- if (txtRefStation.EditValue == null)
- {
- dxErrorProvider.SetError(txtRefStation, "请选择参考站");
- return;
- }
- if (txtFreqUp.EditValue == null)
- {
- dxErrorProvider.SetError(txtFreqUp, "请填写频点");
- return;
- }
- if (txtBand.EditValue == null)
- {
- dxErrorProvider.SetError(txtBand, "请填写带宽");
- return;
- }
- if (txtSpeed.EditValue == null)
- {
- dxErrorProvider.SetError(txtSpeed, "请填写速度");
- return;
- }
- info.TaskState = EnumTaskState.Stopped;
- info.TaskName = txtTaskName.Text;
- info.SimulationType = (EnumSimulationType)radioSimulationType.SelectedIndex;
- info.MainSat = ((SatInfo)txtMainSat.EditValue).SatCode;
- if (txtAdjaSat1.EditValue != null)
- info.Adja1Sat = ((SatInfo)txtAdjaSat1.EditValue).SatCode;
- if (txtAdjaSat2.EditValue != null)
- info.Adja2Sat = ((SatInfo)txtAdjaSat2.EditValue).SatCode;
- info.AntID = Convert.ToInt64(txtTx.EditValue);
- info.RefID = Convert.ToInt64(txtRefStation.EditValue);
- info.Freq = (long)(Convert.ToDouble(txtFreqUp.EditValue) * 1e6);
- info.Band = (long)(Convert.ToDouble(txtBand.EditValue) * 1e6);
- info.Speed = Convert.ToInt64(txtSpeed.EditValue);
- info.isHistory = false;
- this.DialogResult = DialogResult.OK;
- }
- catch (Exception ex)
- {
- Serilog.Log.Error(ex, "编辑任务信息出错");
- DxHelper.MsgBoxHelper.ShowError("编辑任务信息出错");
- }
- }
- private void btnSave_Click(object sender, EventArgs e)
- {
- validation();
- }
- private void btnSaveOther_Click(object sender, EventArgs e)
- {
- validation();
- }
- }
- }
|