using SHJX.Service.Control.Extends; namespace SHJX.Service.Control.Pipeline.Nodes { public class ReleaseAxis : INode { #region Fields private static TaskExtend _taskExtend; private static IDataManager _dataManager; #endregion public ReleaseAxis(IDataManager dataManager, TaskExtend taskExtend) { Name = nameof(ReleaseAxis); _taskExtend = taskExtend; _dataManager = dataManager; } public override INode Invoke() { List caches = _dataManager.Query().Where(it => it.Source.Equals(CurrentTask.Source)).ToList(); if (caches.Any()) { if (caches.Count == 1) { _dataManager.Delete(caches.FirstOrDefault()); } else { foreach (RouteCache cache in caches) { if (cache.RouteStep != CurrentTask.RouteStep) { _dataManager.Delete(cache); } } } } _dataManager.Update().Invoke(it => it.Status.Set(0))(it => it.Name.Equals(StateMachineName.MOTOR_LOCK)); return this; } } }