SatEditor.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using DW5S.Entity;
  2. using DW5S.Repostory;
  3. using DW5S.ViewModel;
  4. using ExtensionsDev;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using XdCxRhDW5S.ViewModel;
  11. namespace DW5S.App.EditForms
  12. {
  13. public partial class SatEditor : DevExpress.XtraEditors.XtraForm
  14. {
  15. public SatViewModel info;
  16. public SatEditor()
  17. {
  18. InitializeComponent();
  19. this.layoutControl1.UseDefault();
  20. this.Text = "添加卫星";
  21. info = new SatViewModel();
  22. this.StartPosition = FormStartPosition.CenterParent;
  23. }
  24. public SatEditor(SatViewModel info)
  25. : this()
  26. {
  27. this.Text = "编辑卫星";
  28. this.info = info;
  29. }
  30. private void SatEditor_Load(object sender, EventArgs e)
  31. {
  32. this.searchLookUpEdit1.UseDefault().SetData(GetAllSat, nameof(SatViewModel.Sat)).UseDoubleClickToSelectAll();
  33. if (this.info.Id > 0)
  34. {
  35. this.txtSatName.Text = info.SatName;
  36. this.txtSatLon.Text = info.SatLon?.ToString();
  37. this.searchLookUpEdit1.SetEditValue<SatViewModel>(p => p.SatCode == info.SatCode);
  38. }
  39. }
  40. private async Task<IEnumerable<SatViewModel>> GetAllSat()
  41. {
  42. var unitOfWork = IocContainer.UnitOfWork;
  43. var repsXl = unitOfWork.Of<XlInfo>() as XlRepository;
  44. var list = await repsXl.GetAllSat();
  45. return list.To<List<SatViewModel>>();
  46. }
  47. private void btnCancel_Click(object sender, EventArgs e)
  48. {
  49. this.DialogResult = DialogResult.Cancel;
  50. }
  51. private async void btnOk_Click(object sender, EventArgs e)
  52. {
  53. try
  54. {
  55. var selectedSat = searchLookUpEdit1.EditValue as SatViewModel;
  56. var unitOfWork = IocContainer.UnitOfWork;
  57. var repsSat = await unitOfWork.Of<SatInfo>().FindAsync(p => p.EnumSatType == EnumSatType.NormalSat);
  58. bool existed = repsSat.Any(p => p.Id != info.Id && p.SatCode == selectedSat.SatCode);
  59. if (existed)
  60. {
  61. DxHelper.MsgBoxHelper.ShowError($"卫星{selectedSat.Sat}已经存在!");
  62. return;
  63. }
  64. info.SatCode = selectedSat.SatCode;
  65. info.SatName = txtSatName.Text.Trim();
  66. info.UpdateTime = DateTime.Now;
  67. info.EnumSatType = EnumSatType.NormalSat;
  68. if (!string.IsNullOrWhiteSpace(txtSatLon.Text))
  69. info.SatLon = Math.Round(Convert.ToDouble(txtSatLon.Text), 1);
  70. this.DialogResult = DialogResult.OK;
  71. }
  72. catch (Exception ex)
  73. {
  74. string msg = "编辑卫星信息出错";
  75. IocContainer.Logger.Error(ex, msg);
  76. DxHelper.MsgBoxHelper.ShowError(msg);
  77. }
  78. }
  79. }
  80. }