private List <IndexWorkflowRecord> RemoveFromQueueUntilPunctuation(IndexWorkflowRecordNode from) { List <IndexWorkflowRecord> workflowRecords = new List <IndexWorkflowRecord>(); if (from != null && !from.IsPunctuation()) { workflowRecords.Add(from.WorkflowRecord); } IndexWorkflowRecordNode tmp = from.Next; while (tmp != null && !tmp.IsPunctuation()) { workflowRecords.Add(tmp.WorkflowRecord); tmp = tmp.Next; tmp.Prev.Clean(); } if (tmp == null) { from.Remove(ref State.State.WorkflowRecordsHead, ref _workflowRecordsTail); } else { from.Next = tmp; tmp.Prev = from; from.Remove(ref State.State.WorkflowRecordsHead, ref _workflowRecordsTail); tmp.Remove(ref State.State.WorkflowRecordsHead, ref _workflowRecordsTail); } return(workflowRecords); }
private void RemoveFromQueueNonPersistent(IndexWorkflowRecord newWorkflow) { IndexWorkflowRecordNode current = State.State.WorkflowRecordsHead; while (current != null) { if (newWorkflow.Equals(current.WorkflowRecord)) { current.Remove(ref State.State.WorkflowRecordsHead, ref _workflowRecordsTail); return; } current = current.Next; } }