using DevExpress.CodeParser; using DevExpress.Mvvm.Native; using DevExpress.XtraPrinting; using DW5S.DTO; using DW5S.Entity; using DW5S.Repostory; using DW5S.ViewModel; using ExtensionsDev; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using XdCxRhDW5S.ViewModel; namespace DW5S.App.UserControl { public partial class CtrlADTask : DevExpress.XtraEditors.XtraUserControl { readonly List list = new List(); readonly List AdSatChViews = new List(); public CtrlADTask() { InitializeComponent(); } private async void CtrlRefTask_Load(object sender, EventArgs e) { try { gridRefTask.UseDefault(list).UseMultiSelect().UseRowNumber() .HideColumn(nameof(ADTaskViewModel.Id)); var sigList = await GetSigInfos(); this.txtSig.UseDefault(showClearBtn: true).SetData(sigList, displayField: nameof(SigViewModel.FreqDownDis)).UseDoubleClickToSelectAll(); var taskList = await Query(); list.AddRange(taskList); gridView1.RefreshData(); gridView1.BestFitColumns(); } catch (Exception ex) { IocContainer.Logger.Error(ex, "查询采集任务信息异常"); DxHelper.MsgBoxHelper.ShowError("查询采集任务信息异常"); } } private async Task> GetSigInfos() { var unitOfWork = IocContainer.UnitOfWork; var sigInfos = await unitOfWork.Of().GetAllAsync(p => p.FreqUpHz); var sigList = sigInfos.OrderBy(i => i.SigType).OrderBy(i => i.FreqDownHz).To>(); return sigList; } private async Task> GetSats() { var unitOfWork = IocContainer.UnitOfWork; var reps = unitOfWork.Of(); var res = await reps.GetAllAsync(); return res.OrderBy(s => s.SatName).To>(); } private async Task> Query(SigViewModel sigView = null) { List taskList = new List(); var unitOfWork = IocContainer.UnitOfWork; var adCards = await unitOfWork.Of().AsQueryable().Where(p => p.Enable == true) .Include(p => p.AdChannels) .OrderByDescending(p => p.Name).ToListAsync(); var sats = await GetSats(); List adSatChViews = new List(); foreach (var adCard in adCards) { foreach (var adChannel in adCard.AdChannels) { var satinfo = sats.FirstOrDefault(c => c.Id == adChannel.SatInfoID); if (adChannel.Enable == true && satinfo != null) { ADSatChViewMode mode = new ADSatChViewMode() { Channel = adChannel.ChNum, ClockerType = adCard.ClockerType, ClockFreq = adCard.ClockFreq, DdcFreq = adCard.DdcFreq, Mutil = adCard.Mutil, SatCode = satinfo.SatCode, SatLon = satinfo.SatLon, SatName = satinfo.SatName, TriggerMode = adCard.TriggerMode, }; adSatChViews.Add(mode); } } } var chItems = adCards.SelectMany(a => a.AdChannels).Where(s => s.Enable == true).ToList(); var sigList = await GetSigInfos(); foreach (var sigItem in sigList) { if (sigView != null && sigView.Id != sigItem.Id) { continue; } var adTask = sigItem.To(); adTask.Sat = string.Join(",", adSatChViews.ToList().Select(s => s.Sat)); taskList.Add(adTask); } AdSatChViews.Clear(); AdSatChViews.AddRange(adSatChViews); return taskList; } private async void btnSerach_Click(object sender, EventArgs e) { try { var sigView = (txtSig.EditValue as SigViewModel); var taskList = await Query(sigView); list.Clear(); list.AddRange(taskList); gridView1.RefreshData(); } catch (Exception ex) { IocContainer.Logger.Error(ex, "查询采集任务信息异常"); DxHelper.MsgBoxHelper.ShowError("查询采集任务信息异常"); } } private async void btnStartaAD_Click(object sender, EventArgs e) { try { List adCard = new List(); var res = await HttpHelper.PostRequestAsync>("http://127.0.0.1:7070/api/Ad/StartAd", adCard); IocContainer.Logger.Information("启动采集任务成功"); } catch (Exception ex) { IocContainer.Logger.Error(ex, "启动采集任务异常"); DxHelper.MsgBoxHelper.ShowError("启动采集任务异常"); } } } }