using DW5S.Entity; using DW5S.Repostory; using DW5S.ViewModel; using ExtensionsDev; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using XdCxRhDW5S.ViewModel; namespace DW5S.App.EditForms { public partial class SatEditor : DevExpress.XtraEditors.XtraForm { public SatViewModel info; public SatEditor() { InitializeComponent(); this.layoutControl1.UseDefault(); this.Text = "添加卫星"; info = new SatViewModel(); this.StartPosition = FormStartPosition.CenterParent; } public SatEditor(SatViewModel info) : this() { this.Text = "编辑卫星"; this.info = info; } private void SatEditor_Load(object sender, EventArgs e) { this.searchLookUpEdit1.UseDefault().SetData(GetAllSat, nameof(SatViewModel.Sat)).UseDoubleClickToSelectAll(); if (this.info.Id > 0) { this.txtSatName.Text = info.SatName; this.txtSatLon.Text = info.SatLon?.ToString(); this.searchLookUpEdit1.SetEditValue(p => p.SatCode == info.SatCode); } } private async Task> GetAllSat() { var unitOfWork = IocContainer.UnitOfWork; var repsXl = unitOfWork.Of() as XlRepository; var list = await repsXl.GetAllSat(); return list.To>(); } private void btnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; } private async void btnOk_Click(object sender, EventArgs e) { try { var selectedSat = searchLookUpEdit1.EditValue as SatViewModel; var unitOfWork = IocContainer.UnitOfWork; var repsSat = await unitOfWork.Of().FindAsync(p => p.EnumSatType == EnumSatType.NormalSat); bool existed = repsSat.Any(p => p.Id != info.Id && p.SatCode == selectedSat.SatCode); if (existed) { DxHelper.MsgBoxHelper.ShowError($"卫星{selectedSat.Sat}已经存在!"); return; } info.SatCode = selectedSat.SatCode; info.SatName = txtSatName.Text.Trim(); info.UpdateTime = DateTime.Now; info.EnumSatType = EnumSatType.NormalSat; if (!string.IsNullOrWhiteSpace(txtSatLon.Text)) info.SatLon = Math.Round(Convert.ToDouble(txtSatLon.Text), 1); this.DialogResult = DialogResult.OK; } catch (Exception ex) { string msg = "编辑卫星信息出错"; IocContainer.Logger.Error(ex, msg); DxHelper.MsgBoxHelper.ShowError(msg); } } } }