TskManager.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using DevExpress.Mvvm;
  2. using DevExpress.Xpo;
  3. using Ips.Library.Basic;
  4. using Ips.Library.DxpLib;
  5. using Ips.Library.Entity;
  6. using Ips.Sps.Tsks.Commands;
  7. using Ips.Sps.TskStrategys;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace Ips.Sps.Tsks
  14. {
  15. public sealed class TskManager
  16. {
  17. public static readonly TskManager Default = new TskManager();
  18. private TskManager()
  19. {
  20. }
  21. public int SelectTskId { get; private set; }
  22. public int SelectSigId { get; private set; }
  23. public void SelectTsk(int tskId, int sigId)
  24. {
  25. this.SelectTskId = tskId;
  26. this.SelectSigId = sigId;
  27. var msg = new TskSelectedMessage()
  28. {
  29. TskId = tskId,
  30. SigId = sigId
  31. };
  32. Messenger.Default.Send(msg);
  33. }
  34. public void ResetAll()
  35. {
  36. using (var uow = new UnitOfWork())
  37. {
  38. var tskList = uow.Query<Tsk>().Where(m => m.State != TskState.Stop);
  39. tskList.ForEach(m => m.State = TskState.Stop);
  40. uow.CommitChanges();
  41. }
  42. }
  43. public bool CheckTskName(Tsk tsk, int tskId = 0)
  44. {
  45. bool exist = Session.DefaultSession.Query<Tsk>().Any(m => m.Name == tsk.Name && m.Oid != tsk.Oid);
  46. if (exist)
  47. {
  48. MsgHelper.ShowError("任务名已存在");
  49. return false;
  50. }
  51. return true;
  52. }
  53. public void UpdateTskState(int tskId, TskState state)
  54. {
  55. using (var uow = new UnitOfWork())
  56. {
  57. var tsk = uow.GetObjectByKey<Tsk>(tskId);
  58. if (tsk == null)
  59. {
  60. throw new Exception("任务不存在!");
  61. }
  62. tsk.State = state;
  63. uow.CommitChanges();
  64. }
  65. Messenger.Default.Send(new TskStateChangedMessage(tskId, state));
  66. }
  67. }
  68. }