CtrlCDBSat.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using DW5S.Entity;
  2. using DW5S.Repostory;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Threading.Tasks;
  8. using System.Windows.Forms;
  9. using XdCxRhDW5S.ViewModel;
  10. namespace DW5S.App.UserControl
  11. {
  12. public partial class CtrlCDBSat : DevExpress.XtraEditors.XtraUserControl
  13. {
  14. readonly List<SatViewModel> list = new List<SatViewModel>();
  15. public CtrlCDBSat()
  16. {
  17. InitializeComponent();
  18. }
  19. private async void CtrlSat_Load(object sender, EventArgs e)
  20. {
  21. try
  22. {
  23. gridCDBSat.UseDefault(list).UseMultiSelect().UseRowNumber()
  24. .HideColumn(nameof(SatViewModel.SatLon))
  25. .UseAddAsync(Add)
  26. .UseEditAsync<SatViewModel>(Edit)
  27. .UseDeleteAsync<SatViewModel>(Delete);
  28. var unitOfWork = IocContainer.UnitOfWork;
  29. var reps = unitOfWork.Of<SatInfo>();
  30. var items = await reps.FindAsync(p => p.EnumSatType == EnumSatType.CdbSat);
  31. list.AddRange(items.OrderBy(p=>p.SatName).To<List<SatViewModel>>());
  32. }
  33. catch (Exception ex)
  34. {
  35. IocContainer.Logger.Error("查询地面站卫星信息异常", ex);
  36. DxHelper.MsgBoxHelper.ShowError("查询地面站卫星信息异常");
  37. }
  38. }
  39. private async Task<SatViewModel> Add()
  40. {
  41. try
  42. {
  43. CDBSatEditor frm = new CDBSatEditor();
  44. if (frm.ShowDialog() != DialogResult.OK) return null;
  45. var addItem = frm.info;
  46. var unitOfWork = IocContainer.UnitOfWork;
  47. var repsSat = unitOfWork.Of<SatInfo>();
  48. var satInfo = await repsSat.AddOrUpdateAsync(addItem.To<SatInfo>());
  49. await unitOfWork.SaveAsync(typeof(SatInfo));
  50. addItem.Id = satInfo.Id;
  51. return addItem;
  52. }
  53. catch (Exception ex)
  54. {
  55. IocContainer.Logger.Error("添加地面站卫星信息异常", ex);
  56. DxHelper.MsgBoxHelper.ShowError("添加地面站卫星信息异常");
  57. return null;
  58. }
  59. }
  60. private async Task<SatViewModel> Edit(SatViewModel editItem)
  61. {
  62. try
  63. {
  64. CDBSatEditor frm = new CDBSatEditor(editItem);
  65. if (frm.ShowDialog() != DialogResult.OK) return null;
  66. editItem = frm.info;
  67. var unitOfWork = IocContainer.UnitOfWork;
  68. var repsSat = unitOfWork.Of<SatInfo>();
  69. await repsSat.AddOrUpdateAsync(editItem.To<SatInfo>());
  70. await unitOfWork.SaveAsync(typeof(SatInfo));
  71. return editItem;
  72. }
  73. catch (Exception ex)
  74. {
  75. IocContainer.Logger.Error("保存地面站卫星信息异常", ex);
  76. DxHelper.MsgBoxHelper.ShowError("保存地面站卫星信息异常");
  77. return null;
  78. }
  79. }
  80. private async Task<bool> Delete(List<SatViewModel> list)
  81. {
  82. try
  83. {
  84. var ids = list.Select(p => p.Id);
  85. var unitOfWork = IocContainer.UnitOfWork;
  86. var repsSat = unitOfWork.Of<SatInfo>();
  87. await repsSat.DeleteAsync(list.To<List<SatInfo>>());
  88. await unitOfWork.SaveAsync(typeof(SatInfo));
  89. return true;
  90. }
  91. catch (Exception ex)
  92. {
  93. IocContainer.Logger.Error("删除地面站卫星信息异常", ex);
  94. DxHelper.MsgBoxHelper.ShowError("删除地面站卫星信息异常");
  95. return false;
  96. }
  97. }
  98. }
  99. }