| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 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<Tsk>().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<Tsk>().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<Tsk>(tskId);                if (tsk == null)                {                    throw new Exception("任务不存在!");                }                tsk.State = state;                uow.CommitChanges();            }            Messenger.Default.Send(new TskStateChangedMessage(tskId, state));        }    }}
 |