public void Queue(IPayloadProvider queueData) { _enqueuedPayloadQueues.Enqueue(queueData); if (_currentPayloadQueue.IsFinished() && _enqueuedPayloadQueues.Count == 1) { ProcessNext(); } }
private void ProcessNext() { Message.Unsubscribe(this); while (_currentPayloadQueue.IsFinished() && _enqueuedPayloadQueues.Count > 0) { _currentPayloadQueue = _enqueuedPayloadQueues.Dequeue(); } if (_currentPayloadQueue.IsFinished()) { Message.Publish(new SequenceFinished()); } else { var payloadData = _currentPayloadQueue.GetNext(); Message.Subscribe(new MessageSubscription(payloadData.Finished, _ => ProcessNext(), this)); Message.Publish(payloadData.Payload); } }
public AccessTokenProvider(IHeaderProvider headerProvider, IPayloadProvider payloadProvider) { this._headerProvider = headerProvider; this._payloadProvider = payloadProvider; }
public static void Queue(IPayloadProvider payloadProvider) => Msgs.Queue(payloadProvider);