using DTO; using HKCardOUT.Helper; using HKCardOUT.Logic.Model; using HKCardOUT.Logic.Service; using Stylet; using StyletIoC; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Threading; using System.Windows.Documents; namespace HKCardOUT.ViewModels { public class RootViewModel : Conductor { IContainer Container; public RootViewModel(IContainer Container) { this.Container = Container; MainThread(); } protected override void OnViewLoaded() { ThreadManage.GetInstance().Start(() => { Result = new ObservableCollection(this.Container.Get().PullDaySaleLog()); Thread.Sleep(3000); }, "消费记录查询"); var Init = DataBus.StoreInfo?.Devices.Join(DataBus.StoreInfo?.Stalls, t => t.GateId, x => x.Id, (t, x) => new AdDTO { Ad = x.Remaek, IsActive = false, Device =t.Name, Stalls=x.Name }).ToList(); if (Init != null) Ad = new ObservableCollection(Init); } #region 属性 ObservableCollection _Result; public ObservableCollection Result { get => _Result; set => SetAndNotify(ref _Result, value); } ObservableCollection _Ad; public ObservableCollection Ad { get => _Ad; set => SetAndNotify(ref _Ad, value); } #endregion #region 方法 private void MainThread() { ThreadManage.GetInstance().StartLong(new Action(() => { try { //1.检测网络上下线 bool network = HKHelper.GetInstance().GetNetworkState(); if (network != DataBus.NetWordState) { if (network) HandyControl.Controls.Growl.InfoGlobal("网络连接成功"); else HandyControl.Controls.Growl.InfoGlobal("系统已离线,请连接网络!!!"); DataBus.NetWordState = network; } Thread.Sleep(3000); } catch (Exception ex) { HandyControl.Controls.Growl.InfoGlobal(ex.Message); } }), "循环状态监测线程", false); } #endregion #region 命令 /// /// 广告位置 /// /// public void UpdateAction(AdDTO input) { input.IsActive = !input.IsActive; var SC = System.Windows.Forms.Screen.AllScreens.Count(); if (SC >= 1) { if (input.IsActive) { if (!DataBus.AdStatus.ContainsKey(input.Device)) { var win = new Views.AdWindow(input.Ad); DataBus.AdStatus.Add(input.Device, win); win.Show(); } } else { if (DataBus.AdStatus.ContainsKey(input.Device)) { DataBus.AdStatus[input.Device].Close(); DataBus.AdStatus.Remove(input.Device); } } } } #endregion } }