CtrlADTask.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. using DevExpress.CodeParser;
  2. using DevExpress.Mvvm.Native;
  3. using DevExpress.XtraPrinting;
  4. using DW5S.DTO;
  5. using DW5S.Entity;
  6. using DW5S.Repostory;
  7. using DW5S.ViewModel;
  8. using ExtensionsDev;
  9. using Microsoft.EntityFrameworkCore;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Threading.Tasks;
  14. using XdCxRhDW5S.ViewModel;
  15. namespace DW5S.App.UserControl
  16. {
  17. public partial class CtrlADTask : DevExpress.XtraEditors.XtraUserControl
  18. {
  19. readonly List<ADTaskViewModel> list = new List<ADTaskViewModel>();
  20. public CtrlADTask()
  21. {
  22. InitializeComponent();
  23. }
  24. private async void CtrlRefTask_Load(object sender, EventArgs e)
  25. {
  26. try
  27. {
  28. gridRefTask.UseDefault(list).UseMultiSelect().UseRowNumber()
  29. .HideColumn(nameof(ADTaskViewModel.Id));
  30. var sigList = await GetSigInfos();
  31. this.txtSig.UseDefault(showClearBtn: true).SetData(sigList, displayField: nameof(SigViewModel.FreqDownDis)).UseDoubleClickToSelectAll();
  32. var taskList = await Query();
  33. list.AddRange(taskList);
  34. gridView1.RefreshData();
  35. gridView1.BestFitColumns();
  36. }
  37. catch (Exception ex)
  38. {
  39. IocContainer.Logger.Error(ex, "查询采集任务信息异常");
  40. DxHelper.MsgBoxHelper.ShowError("查询采集任务信息异常");
  41. }
  42. }
  43. private async Task<List<SigViewModel>> GetSigInfos()
  44. {
  45. var unitOfWork = IocContainer.UnitOfWork;
  46. var sigInfos = await unitOfWork.Of<SigInfo>().GetAllAsync(p => p.FreqUpHz);
  47. var sigList = sigInfos.OrderBy(i => i.SigType).OrderBy(i => i.FreqDownHz).To<List<SigViewModel>>();
  48. return sigList;
  49. }
  50. private async Task<List<SatViewModel>> GetSats()
  51. {
  52. var unitOfWork = IocContainer.UnitOfWork;
  53. var reps = unitOfWork.Of<SatInfo>();
  54. var res = await reps.GetAllAsync();
  55. return res.OrderBy(s => s.SatName).To<List<SatViewModel>>();
  56. }
  57. private async Task<List<ADTaskViewModel>> Query(SigViewModel sigView = null)
  58. {
  59. List<ADTaskViewModel> taskList = new List<ADTaskViewModel>();
  60. var unitOfWork = IocContainer.UnitOfWork;
  61. var adCards = await unitOfWork.Of<AdCard>().AsQueryable().Where(p => p.Enable == true)
  62. .Include(p => p.AdChannels)
  63. .OrderByDescending(p => p.Name).ToListAsync();
  64. var chItems = adCards.SelectMany(a => a.AdChannels).Where(s => s.Enable == true).ToList();
  65. var sigList = await GetSigInfos();
  66. var sats = await GetSats();
  67. var chsats = sats.Where(s => chItems.Any(c => c.SatInfoID == s.Id));
  68. foreach (var sigItem in sigList)
  69. {
  70. if (sigView != null && sigView.Id == sigItem.Id)
  71. {
  72. continue;
  73. }
  74. var adTask = sigItem.To<ADTaskViewModel>();
  75. adTask.SatViews = chsats.ToList();
  76. taskList.Add(adTask);
  77. }
  78. return taskList;
  79. }
  80. private async void btnSerach_Click(object sender, EventArgs e)
  81. {
  82. try
  83. {
  84. var sigView = (txtSig.EditValue as SigViewModel);
  85. var taskList = await Query(sigView);
  86. list.Clear();
  87. list.AddRange(taskList);
  88. gridView1.RefreshData();
  89. }
  90. catch (Exception ex)
  91. {
  92. IocContainer.Logger.Error(ex, "查询采集任务信息异常");
  93. DxHelper.MsgBoxHelper.ShowError("查询采集任务信息异常");
  94. }
  95. }
  96. private async void btnStartaAD_Click(object sender, EventArgs e)
  97. {
  98. try
  99. {
  100. List<AdCard> adCard = new List<AdCard>();
  101. var res = await HttpHelper.PostRequestAsync<List<AdCard>>("http://127.0.0.1:7070/api/Ad/StartAd", adCard);
  102. IocContainer.Logger.Information("启动采集任务成功");
  103. }
  104. catch (Exception ex)
  105. {
  106. IocContainer.Logger.Error(ex, "启动采集任务异常");
  107. DxHelper.MsgBoxHelper.ShowError("启动采集任务异常");
  108. }
  109. }
  110. }
  111. }