using NEIntelligentControl2.Models.Windturbine; using NEIntelligentControl2.Models.WinForms; using NEIntelligentControl2.Service.Windturbine; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace NEIntelligentControl2.Views.Infos { /// /// 风机详情弹窗视图 /// public partial class WindturbineDetailsView : UserControl { private IList UniformCodeInfos; private WindturbineInfo info; private List _Cards; private DateTime _DataRefreshTime; private InfoManager _InfoManager; private string[] _UniformCodes; public string ToolTipValue { get => tbcontent.Text; internal set => tbcontent.Text = value; } public WindturbineDetailsView(WindturbineInfo windturbineInfo) { InitializeComponent(); info = windturbineInfo; tbtitle.Text = windturbineInfo.WindturbineId; _Cards = new List(); _InfoManager = App.GetService(); Init(); } /// /// 刷新数据 /// internal void RefreshData() { if ((DateTime.Now - _DataRefreshTime).TotalSeconds < 5) return; Task.Run(() => { try { var vs = _InfoManager.GetPointDatas(info.WindturbineId, _UniformCodes); Dispatcher.Invoke(() => { foreach(var v in _Cards) { v.RefreshData(vs); } }); } catch { } }); _DataRefreshTime = DateTime.Now; } private void Init() { UniformCodeInfos = App.GetService().GetUniformCode(info.StationId, info.ModelId); var gp = UniformCodeInfos.GroupBy(u => u.PartName); foreach(var v in gp) { WindturbineDetailsCard windturbineDetailsCard = new WindturbineDetailsCard() { CardTitle = v.Key, Items = v.ToList(), Info = info }; _Cards.Add(windturbineDetailsCard); sp.Children.Add(windturbineDetailsCard); } _UniformCodes = UniformCodeInfos.Select(u => u.UniformCode).ToArray(); } } }