using DevExpress.Mvvm.Native; 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(); 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 chItems = adCards.SelectMany(a => a.AdChannels).Where(s => s.Enable == true).ToList(); var sigList = await GetSigInfos(); var sats = await GetSats(); var chsats = sats.Where(s => chItems.Any(c => c.SatInfoID == s.Id)); foreach (var sigItem in sigList) { if (sigView != null && sigView.Id == sigItem.Id) { continue; } var adTask = sigItem.To(); adTask.SatViews = chsats.ToList(); taskList.Add(adTask); } 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("查询采集任务信息异常"); } } } }