We use Microsoft.Azure.ServiceBus, and Microsoft.Azure.ServiceBus.Management as client to interact with our Azure Service Bus. Our code uses paging to save performance:
<code>managementClient = new ManagementClient(ConnectionString);
foundQueue = await FindQueue(managementClient, queueName, 100, 0);
private async Task<QueueDescription> FindQueue(ManagementClient managementClient, string queueName, int top, int skip)
{
var allQueues = await managementClient.GetQueuesAsync(top, skip);
foreach (var queue in allQueues)
{
var foundName = queue.Path;
// ...
}
if (allQueues.Count == top)
{
return await FindQueue(managementClient, queueName, top, skip + top);
}
// ...
}
</code>
<code>managementClient = new ManagementClient(ConnectionString);
foundQueue = await FindQueue(managementClient, queueName, 100, 0);
private async Task<QueueDescription> FindQueue(ManagementClient managementClient, string queueName, int top, int skip)
{
var allQueues = await managementClient.GetQueuesAsync(top, skip);
foreach (var queue in allQueues)
{
var foundName = queue.Path;
// ...
}
if (allQueues.Count == top)
{
return await FindQueue(managementClient, queueName, top, skip + top);
}
// ...
}
</code>
managementClient = new ManagementClient(ConnectionString);
foundQueue = await FindQueue(managementClient, queueName, 100, 0);
private async Task<QueueDescription> FindQueue(ManagementClient managementClient, string queueName, int top, int skip)
{
var allQueues = await managementClient.GetQueuesAsync(top, skip);
foreach (var queue in allQueues)
{
var foundName = queue.Path;
// ...
}
if (allQueues.Count == top)
{
return await FindQueue(managementClient, queueName, top, skip + top);
}
// ...
}
Now we want to migrate to Azure.Messaging.ServiceBus. For Paging, we use Azure.Messaging.ServiceBus.Administration:
<code>administrationClient = new ServiceBusAdministrationClient(ConnectionString);
foundQueue = await FindQueue(administrationClient, queueName, 100, 0);
private async Task FindQueue(ServiceBusAdministrationClient administrationClient, string queueName, int top, int skip)
{
var allQueues = administrationClient.GetQueuesAsync(); // <- how to use paging here with top and skip?
//..
}
</code>
<code>administrationClient = new ServiceBusAdministrationClient(ConnectionString);
foundQueue = await FindQueue(administrationClient, queueName, 100, 0);
private async Task FindQueue(ServiceBusAdministrationClient administrationClient, string queueName, int top, int skip)
{
var allQueues = administrationClient.GetQueuesAsync(); // <- how to use paging here with top and skip?
//..
}
</code>
administrationClient = new ServiceBusAdministrationClient(ConnectionString);
foundQueue = await FindQueue(administrationClient, queueName, 100, 0);
private async Task FindQueue(ServiceBusAdministrationClient administrationClient, string queueName, int top, int skip)
{
var allQueues = administrationClient.GetQueuesAsync(); // <- how to use paging here with top and skip?
//..
}
How to implement paging with Azure.Messaging.ServiceBus.Administration?