public void EnqueueTask(WorkItem workItem, CheckpointTag workItemCheckpointTag, bool allowCurrentPosition = false)
 {
     ValidateQueueingOrder(workItemCheckpointTag, allowCurrentPosition);
     workItem.SetProjectionQueue(this);
     workItem.SetCheckpointTag(workItemCheckpointTag);
     _queuePendingEvents.Enqueue(workItem);
 }
 public void EnqueueOutOfOrderTask(WorkItem workItem)
 {
     if (_lastEnqueuedEventTag == null)
         throw new InvalidOperationException(
             "Cannot enqueue an out-of-order task.  The projection position is currently unknown.");
     workItem.SetProjectionQueue(this);
     workItem.SetCheckpointTag(_lastEnqueuedEventTag);
     _queuePendingEvents.Enqueue(workItem);
 }
 public void EnqueueTask(WorkItem workItem, CheckpointTag workItemCheckpointTag, bool allowCurrentPosition = false)
 {
     if (_queueState == QueueState.Stopped)
         throw new InvalidOperationException("Queue is Stopped");
     ValidateQueueingOrder(workItemCheckpointTag, allowCurrentPosition);
     workItem.SetCheckpointTag(workItemCheckpointTag);
     _queuePendingEvents.Enqueue(workItem);
 }
 public void EnqueueOutOfOrderTask(WorkItem workItem)
 {
     workItem.SetCheckpointTag(_lastEnqueuedEventTag);
     _queuePendingEvents.Enqueue(workItem);
 }