public IObservable<Queue> ListQueues(int startPage = 0, int pageSize = 30)
{
return Observable.Create<Queue>(async (observer, cancel) =>
{
var page = startPage;
Next:
var response = await _client.GetStringAsync(string.Format("queues?page={0}", page++));
var array = JsonArray.Parse(response) as JsonArray;
foreach (var info in array) observer.OnNext(new Queue(this._client, new _QueueInfo(info).Name));
if (array.Count == pageSize && !cancel.IsCancellationRequested) goto Next;
observer.OnCompleted();
});
}