123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- using DevExpress.XtraEditors;
- 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.Windows.Forms;
- using DataSimulation.Repostory;
- using DataSimulation.Repostory.EFContext;
- using DataSimulation.Repostory.Model;
- namespace DataSimulation.Forms.EditForms
- {
- public partial class SatEditor : DevExpress.XtraEditors.XtraForm
- {
- public SatInfo info;
- public SatEditor()
- {
- InitializeComponent();
- this.layoutControl1.UseDefault();
- this.Text = "添加卫星";
- info = new SatInfo();
- this.StartPosition = FormStartPosition.CenterParent;
- txtSatLon.EditValueChanged += TxtSatLon_EditValueChanged;
- searchLookUpEdit1.EditValueChanged += SearchLookUpEdit1_EditValueChanged;
- }
- private void SearchLookUpEdit1_EditValueChanged(object sender, EventArgs e)
- {
- searchLookUpEdit1.CheckSearch(dxErrorProvider, "卫星");
- }
- private void TxtSatLon_EditValueChanged(object sender, EventArgs e)
- {
- txtSatLon.CheckLon(dxErrorProvider, "轨道");
- }
- public SatEditor(SatInfo info)
- : this()
- {
- this.Text = "编辑卫星";
- this.info = info;
- }
- private async void SatEditor_Load(object sender, EventArgs e)
- {
- var listXl = await XlCache.GetAllAsync();
- this.searchLookUpEdit1.UseDefault().SetStringData(listXl.Select(p => p.Sat)).UseDoubleClickToSelectAll();
- if (this.Text == "编辑卫星" && info != null)
- {
- this.txtSatName.Text = info.SatName;
- this.txtSatLon.Text = $"{info.SatLon}";
- }
- }
- private void btnCancel_Click(object sender, EventArgs e)
- {
- this.DialogResult = DialogResult.Cancel;
- }
- private async void btnOk_Click(object sender, EventArgs e)
- {
- if (!searchLookUpEdit1.CheckSearch(dxErrorProvider, "卫星") || !txtSatLon.CheckLon(dxErrorProvider, "轨道"))
- {
- return;
- }
- try
- {
- var sat = searchLookUpEdit1.Text;
- var idx = sat.LastIndexOf('(');
- var satCodeStr = sat.Substring(idx + 1, sat.Length - idx - 2);
- info.SatCode = Convert.ToInt32(satCodeStr);
- info.SatName = txtSatName.Text.Trim();
- if (!string.IsNullOrWhiteSpace(txtSatLon.Text))
- info.SatLon = Convert.ToDouble(txtSatLon.Text);
- if (this.Text == "添加卫星")
- {
- using (SimulationContext db = new SimulationContext())
- {
- bool isAny = db.SatInfos.Any(s => s.SatName == info.SatName && s.SatCode == info.SatCode && s.SatLon == info.SatLon);
- if (isAny)
- {
- DxHelper.MsgBoxHelper.ShowError($"添加卫星信息失败,已经存在卫星:{info.Sat}");
- return;
- }
- db.SatInfos.Add(info);
- await db.SaveChangesAsync();
- }
- }
- else
- {
- using (SimulationContext db = new SimulationContext())
- {
- bool isAny = db.SatInfos.Any(s => s.ID != info.ID && s.SatName == info.SatName && s.SatCode == info.SatCode && s.SatLon == info.SatLon);
- if (isAny)
- {
- DxHelper.MsgBoxHelper.ShowError($"编辑卫星信息失败,已经存在卫星:{info.Sat}");
- return;
- }
- var find = await db.SatInfos.Where(p => p.ID == info.ID).FirstOrDefaultAsync();
- find.SatName = info.SatName;
- find.SatCode = info.SatCode;
- find.SatLon = info.SatLon;
- await db.SaveChangesAsync();
- }
- }
- this.DialogResult = DialogResult.OK;
- }
- catch (Exception ex)
- {
- Serilog.Log.Error(ex, $"{this.Text}信息出错");
- DxHelper.MsgBoxHelper.ShowError($"{this.Text}信息出错");
- }
- }
- }
- }
|