SigEditor.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. using DevExpress.XtraEditors;
  2. using ExtensionsDev;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Data.Entity;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Runtime.Remoting.Metadata.W3cXsd2001;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Windows.Documents;
  14. using System.Windows.Forms;
  15. using XdCxRhDW.Entity;
  16. using XdCxRhDW.Repostory;
  17. namespace XdCxRhDW.App.EditForms
  18. {
  19. public partial class SigEditor : DevExpress.XtraEditors.XtraForm
  20. {
  21. public SigInfo info;
  22. readonly List<SigDelay> list = new List<SigDelay>();
  23. public SigEditor()
  24. {
  25. InitializeComponent();
  26. this.layoutControl1.UseDefault();
  27. this.Text = "添加信号";
  28. info = new SigInfo();
  29. this.StartPosition = FormStartPosition.CenterParent;
  30. }
  31. public SigEditor(SigInfo info)
  32. : this()
  33. {
  34. this.Text = "编辑信号";
  35. this.info = info;
  36. }
  37. private async void SatEditor_Load(object sender, EventArgs e)
  38. {
  39. using (RHDWContext db = new RHDWContext())
  40. {
  41. var sats = await db.SatInfos.ToListAsync();
  42. this.txtSat.UseDefault().SetData(sats, nameof(SatInfo.Sat)).UseDoubleClickToSelectAll();
  43. }
  44. txtSigType.Properties.Items.Clear();
  45. txtSigType.Properties.Items.AddEnum<EnumSigCheckType>();
  46. gridSigDelay.UseDefault(list).UseMultiSelect();
  47. if (this.Text == "编辑信号" && info != null)
  48. {
  49. this.txtFreqUp.EditValue = info.FreqUp;
  50. this.txtFreqDown.EditValue = info.FreqDown;
  51. this.txtSnr.EditValue = info.Snr;
  52. List<EnumSigCheckType> deWay = new List<EnumSigCheckType>();
  53. if (info.SigType.HasFlag(EnumSigCheckType.DAMA))
  54. {
  55. deWay.Add(EnumSigCheckType.DAMA);
  56. }
  57. if (info.SigType.HasFlag(EnumSigCheckType.IBS))
  58. {
  59. deWay.Add(EnumSigCheckType.IBS);
  60. }
  61. if (info.SigType.HasFlag(EnumSigCheckType.Ky5758))
  62. {
  63. deWay.Add(EnumSigCheckType.Ky5758);
  64. }
  65. this.txtSigType.EditValue = string.Join(",", deWay);
  66. using (RHDWContext db = new RHDWContext())
  67. {
  68. var items = await db.SigDelays.Where(p => p.SignalID==info.ID).ToListAsync();
  69. list.AddRange(items);
  70. }
  71. }
  72. }
  73. private void btnCancel_Click(object sender, EventArgs e)
  74. {
  75. this.DialogResult = DialogResult.Cancel;
  76. }
  77. private void btnOk_Click(object sender, EventArgs e)
  78. {
  79. try
  80. {
  81. info.FreqUp =Convert.ToDouble( txtFreqUp.EditValue);
  82. info.FreqDown = Convert.ToDouble(txtFreqDown.EditValue);
  83. info.Snr = Convert.ToDouble(txtSnr.EditValue);
  84. this.DialogResult = DialogResult.OK;
  85. }
  86. catch (Exception ex)
  87. {
  88. Serilog.Log.Error(ex, "编辑信号信息出错");
  89. DxHelper.MsgBoxHelper.ShowError("编辑信号信息出错");
  90. }
  91. }
  92. private void btnAddDelay_Click(object sender, EventArgs e)
  93. {
  94. SigDelay sigDelay = new SigDelay();
  95. sigDelay.SatID = ((SatInfo)txtSat.EditValue).SatCode;
  96. sigDelay.Delay = Convert.ToDouble(txtDelay.EditValue.ToString());
  97. if (list.Any(a => a.SatID == sigDelay.SatID))
  98. {
  99. DxHelper.MsgBoxHelper.ShowInfo("已添加该卫星");
  100. return;
  101. }
  102. list.Add(sigDelay);
  103. gridView1.RefreshData();
  104. }
  105. private void btnDel_Click(object sender, EventArgs e)
  106. {
  107. var idsGrid = gridView1.GetSelectedRows();
  108. List<SigDelay> selectedRes = new List<SigDelay>();
  109. foreach (var row in idsGrid)
  110. {
  111. selectedRes.Add(gridView1.GetRow(row) as SigDelay);
  112. }
  113. var seltedIds = selectedRes.Select(s => s.SatID);
  114. list.RemoveAll(r => seltedIds.Contains(r.SatID));
  115. gridView1.RefreshData();
  116. }
  117. }
  118. }