using DevExpress.XtraEditors; using ExtensionsDev; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DW5S.App.Model; using DW5S.Entity; using DW5S.Repostory; using Serilog; using DW5S.Service; namespace DW5S.App.PopupControl { public partial class ShowCgCtrl : DevExpress.XtraEditors.XtraUserControl { PosRes posItem; List listCg = new List(); List listXgf = new List(); public ShowCgCtrl() { InitializeComponent(); this.layoutControl1.UseDefault(); gridShowCg.UseDefault(listCg); gridCgXgf.UseDefault(listXgf).UseRowNumber(); } public ShowCgCtrl(PosRes posItem) : this() { this.posItem = posItem; } private async void ShowCgCtrl_Load(object sender, EventArgs e) { List sats = null; var unitOfWork = IocContainer.UnitOfWork; var repsSat = unitOfWork.Of(); sats = (await repsSat.GetAllAsync()).ToList(); List list = new List(); var repsCg = unitOfWork.Of(); var cgEntity = await repsCg.FirstOrDefaultAsync(p => p.Id == posItem.CgResID); if (cgEntity == null) return; //主邻1 if (cgEntity.Adja1Code != null) { ModelCg item = new ModelCg() { Id = cgEntity.Id, CreateTime = cgEntity.CreateTime, UpdateTime = cgEntity.UpdateTime, SigTime = cgEntity.SigTime, Dto = cgEntity.Dto1, Dfo = cgEntity.Dfo1, Snr = cgEntity.Snr1, MainSat = cgEntity.MainCode?.ToString(), AdjaSat = cgEntity.Adja1Code.ToString(), CgType = 0, }; var find = sats.Find(p => p.SatCode == cgEntity.MainCode.Value); if (find != null) item.MainSat = find.Sat; find = sats.Find(p => p.SatCode == cgEntity.Adja1Code.Value); if (find != null) item.AdjaSat = find.Sat; list.Add(item); } //主邻2 if (cgEntity.Adja2Code != null) { ModelCg item = new ModelCg() { Id = cgEntity.Id, CreateTime = cgEntity.CreateTime, UpdateTime = cgEntity.UpdateTime, SigTime = cgEntity.SigTime, Dto = cgEntity.Dto2, Dfo = cgEntity.Dfo2, Snr = cgEntity.Snr2, MainSat = cgEntity.MainCode?.ToString(), AdjaSat = cgEntity.Adja2Code.ToString(), CgType = 1, }; var find = sats.Find(p => p.SatCode == cgEntity.MainCode.Value); if (find != null) item.MainSat = find.Sat; find = sats.Find(p => p.SatCode == cgEntity.Adja2Code.Value); if (find != null) item.AdjaSat = find.Sat; list.Add(item); } //超短 if (cgEntity.DtoCdb != null) { ModelCg item = new ModelCg() { Id = cgEntity.Id, CreateTime = cgEntity.CreateTime, UpdateTime = cgEntity.UpdateTime, SigTime = cgEntity.SigTime, Dto = cgEntity.DtoCdb, Dfo = cgEntity.DfoCdb, Snr = cgEntity.SnrCdb, MainSat = cgEntity.MainCode?.ToString(), AdjaSat = "超短站", CgType = 2, }; var find = sats.Find(p => p.SatCode == cgEntity.MainCode.Value); if (find != null) item.MainSat = find.Sat; list.Add(item); } this.listCg.Clear(); this.listCg.AddRange(list); } private async void gridView1_FocusedRowObjectChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventArgs e) { listXgf.Clear(); var cgItem = e.Row as ModelCg; if (cgItem != null) { var unitOfWork = IocContainer.UnitOfWork; var repsCgXgf = unitOfWork.Of(); var data = await repsCgXgf.FindAsync(p => p.CgResID == cgItem.Id && p.CgType == cgItem.CgType); listXgf.AddRange(data.Select(p => new ModelCgXgf { Id = p.Id, Dto = p.Dto, Dfo = p.Dfo, Snr = p.Snr, CreateTime = p.CreateTime, UpdateTime = p.UpdateTime, })); //查询相关峰结果 } this.gridView2.RefreshData(); } } }