TargetInversion.cs 912 B

12345678910111213141516171819202122232425262728293031
  1. using SHJX.Service.Control.Extends;
  2. namespace SHJX.Service.Control.Pipeline.Nodes
  3. {
  4. public class TargetInversion : INode
  5. {
  6. #region Fields
  7. private static TaskExtend _taskExtend;
  8. private static IDataManager _dataManager;
  9. #endregion
  10. public TargetInversion(IDataManager dataManager, TaskExtend taskExtend)
  11. {
  12. Name = nameof(TargetInversion);
  13. _taskExtend = taskExtend;
  14. _dataManager = dataManager;
  15. }
  16. public override INode Invoke()
  17. {
  18. CurrentTask.Target = CurrentTask.Target switch
  19. {
  20. "From" => nameof(CurrentTask.To),
  21. "To" => nameof(CurrentTask.From),
  22. _ => throw new ArgumentNullException(CurrentTask.Target),
  23. };
  24. var res = _dataManager.Update(CurrentTask) > 0;
  25. return this;
  26. }
  27. }
  28. }