using System; using System.Collections.ObjectModel; using System.Linq; using System.Threading; using BPA.Message; using BPA.Message.Enum; using BPASmartClient.Helper; using BPASmartClient.Model; using Microsoft.Toolkit.Mvvm.ComponentModel; using Microsoft.Toolkit.Mvvm.Input; using Microsoft.Toolkit.Mvvm.Messaging; namespace BPASmartClient.ViewModel { public class OrderListDialogViewModel : ObservableObject { public static bool IsAutoClose = false; public OrderListDialogViewModel() { Init(); } private void Init() { CloseButton(); CancelButton(); ConfirmButton(); if (Json.Data.orderLists.Count > 0) { Message.MessageLog.GetInstance.Show($"重启软件前订单剩余{Json.Data.orderLists.Count}个"); ThreadManage.GetInstance().Start(new Action(() => { Thread.Sleep(10000); if (!IsAutoClose) WeakReferenceMessenger.Default.Send("false", "Close"); }), "延时退出"); } } /// /// 关闭按钮 /// private void CloseButton() { CloseCommand = new RelayCommand(() => { Json.Data.orderLists.Clear(); WeakReferenceMessenger.Default.Send("false", "Close"); Json.Save(); }); } /// /// 取消按钮 /// private void CancelButton() { CancelCommand = new RelayCommand(() => { Json.Data.orderLists.Clear(); WeakReferenceMessenger.Default.Send("false", "Close"); Json.Save(); }); } /// /// 确定按钮 /// private void ConfirmButton() { ConfirmCommand = new RelayCommand(() => { Json.Data.orderLists.Clear(); //var res = orderStatusLists.Where(p => p.IsSelected == true).ToList(); var res = orderStatusLists.Where(p => p.morkOrderPushes.Where(s => s.IsSelected == true).ToList().Count > 0).ToList(); if (res != null) { Json.Data.orderLists.Clear(); foreach (var item in orderStatusLists) { ObservableCollection morkOrders = new ObservableCollection(); foreach (var mork in item.morkOrderPushes) { if (mork.IsSelected) morkOrders.Add(mork); } Json.Data.orderLists.Add(new OrderData() { DeviceId = item.DeviceId, IsAllSelect = item.IsAllSelect, morkOrderPushes = morkOrders, }); /* foreach (var mo in morkOrders) { DoOrderEvent de = new DoOrderEvent(); de.DeviceId = int.Parse(item.DeviceId); de.MorkOrder = mo.OrderPush; EventBus.EventBus.GetInstance().Publish(de); }*/ } } WeakReferenceMessenger.Default.Send("true", "Close"); }); } public RelayCommand CloseCommand { get; set; } public RelayCommand CancelCommand { get; set; } public RelayCommand ConfirmCommand { get; set; } public ObservableCollection orderStatusLists { get { return Json.Data.orderLists; } set { Json.Data.orderLists = value; } } } }