using DevExpress.Mvvm; using DevExpress.Xpo; using Ips.Library.Basic; using Ips.Library.DxpLib; using Ips.Library.Entity; using Ips.Sps.Tsks.Commands; using Ips.Sps.TskStrategys; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ips.Sps.Tsks { public sealed class TskManager { public static readonly TskManager Default = new TskManager(); private TskManager() { } public int SelectTskId { get; private set; } public int SelectSigId { get; private set; } public void SelectTsk(int tskId, int sigId) { this.SelectTskId = tskId; this.SelectSigId = sigId; var msg = new TskSelectedMessage() { TskId = tskId, SigId = sigId }; Messenger.Default.Send(msg); } public void ResetAll() { using (var uow = new UnitOfWork()) { var tskList = uow.Query().Where(m => m.State != TskState.Stop); tskList.ForEach(m => m.State = TskState.Stop); uow.CommitChanges(); } } public bool CheckTskName(Tsk tsk, int tskId = 0) { bool exist = Session.DefaultSession.Query().Any(m => m.Name == tsk.Name && m.Oid != tsk.Oid); if (exist) { MsgHelper.ShowError("任务名已存在"); return false; } return true; } public void UpdateTskState(int tskId, TskState state) { using (var uow = new UnitOfWork()) { var tsk = uow.GetObjectByKey(tskId); if (tsk == null) { throw new Exception("任务不存在!"); } tsk.State = state; uow.CommitChanges(); } Messenger.Default.Send(new TskStateChangedMessage(tskId, state)); } } }