CtrlSat.cs 4.0 KB

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