Skip to content

Sdk migration ServiceBus Queues #750

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 12 commits into
base: main
Choose a base branch
from
Prev Previous commit
Next Next commit
messagecount details working with workaround
  • Loading branch information
Merlijnv committed Nov 9, 2023
commit e03e765f25dd8358358c110d9b909e9e3996fe4d
15 changes: 8 additions & 7 deletions src/Common/Helpers/ServiceBusHelper2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -698,7 +698,7 @@ public bool Connect(ServiceBusNamespace2 serviceBusNamespace)
/// <param name="filter">OData filter.</param>
/// <returns>Returns an IEnumerable<QueueDescription/> collection of all queues in the service namespace.
/// Returns an empty collection if no queue exists in this service namespace.</returns>
public async Task<IEnumerable<QueueProperties>> GetQueuesAsync(string filter, int timeoutInSeconds)
public async Task<IEnumerable<QueueRuntimeProperties>> GetQueuesAsync(string filter, int timeoutInSeconds)
{
if (serviceBusAdministrationClient != null)
{
Expand All @@ -709,20 +709,21 @@ public async Task<IEnumerable<QueueProperties>> GetQueuesAsync(string filter, in
//https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicebus.namespacemanager.getqueuesasync?view=azure-dotnet#Microsoft_ServiceBus_NamespaceManager_GetQueuesAsync_System_String_
//Split on ' OR ' and combine queues returned

var queuesListingResult = /*string.IsNullOrWhiteSpace(filter) ?*/ serviceBusAdministrationClient.GetQueuesAsync() /*: serviceBusAdministrationClient.GetQueuesAsync(/*splitFilter#1#)*/;
var queuesListingResult = /*string.IsNullOrWhiteSpace(filter) ?*/ serviceBusAdministrationClient.GetQueuesRuntimePropertiesAsync() /*: serviceBusAdministrationClient.GetQueuesAsync(/*splitFilter#1#)*/;

IList<QueueProperties> queues = new List<QueueProperties>();

// Todo client side filtering
IList<QueueRuntimeProperties> queues = new List<QueueRuntimeProperties>();

await foreach (var item in queuesListingResult)
{
queues.Add(item);
}

//todo add filtering?
return queues;
}

return new List<QueueProperties> {
return new List<QueueRuntimeProperties> {
GetQueueUsingEntityPath(timeoutInSeconds)
};
}
Expand All @@ -732,10 +733,10 @@ public async Task<IEnumerable<QueueProperties>> GetQueuesAsync(string filter, in
/// <summary>
/// Retrieves a queue in the service bus namespace that matches the entity path.
/// </summary>
private QueueProperties GetQueueUsingEntityPath(int timeoutInSeconds)
private QueueRuntimeProperties GetQueueUsingEntityPath(int timeoutInSeconds)
{
var taskList = new List<Task>();
var getQueueTask = serviceBusAdministrationClient.GetQueueAsync(serviceBusNamespaceInstance.EntityPath);
var getQueueTask = serviceBusAdministrationClient.GetQueueRuntimePropertiesAsync(serviceBusNamespaceInstance.EntityPath);
taskList.Add(getQueueTask);
taskList.Add(Task.Delay(TimeSpan.FromSeconds(timeoutInSeconds)));
Task.WaitAny(taskList.ToArray());
Expand Down
28 changes: 22 additions & 6 deletions src/ServiceBusExplorer/Forms/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5639,7 +5639,7 @@ private TreeNode CreateNode(string path,
UrlSegmentIconIndex,
UrlSegmentIconIndex);
var entityType = EntityType.Queue;
if (tag is QueueProperties)
if (tag is QueueRuntimeProperties)
{
entityNode.ContextMenuStrip = queueFolderContextMenuStrip;
}
Expand All @@ -5658,13 +5658,14 @@ private TreeNode CreateNode(string path,
}
else
{
if (tag is QueueProperties)
if (tag is QueueRuntimeProperties)
{
var queueProperties = tag as QueueProperties;
var queueProperties = tag as QueueRuntimeProperties;
entityNode = entityNode.Nodes.Add(segments[i],
"GetNameAndMessageCountShouldBeFixed",//GetNameAndMessageCountText(segments[i], queueProperties.MessageCountDetails),
queueProperties.Status == Azure.Messaging.ServiceBus.Administration.EntityStatus.Active ? QueueIconIndex : GreyQueueIconIndex,
queueProperties.Status == Azure.Messaging.ServiceBus.Administration.EntityStatus.Active ? QueueIconIndex : GreyQueueIconIndex);
GetNameAndMessageCountText(segments[i], queueProperties),
QueueIconIndex, QueueIconIndex
/*queueProperties.Status == Azure.Messaging.ServiceBus.Administration.EntityStatus.Active ? QueueIconIndex : GreyQueueIconIndex,
queueProperties.Status == Azure.Messaging.ServiceBus.Administration.EntityStatus.Active ? QueueIconIndex : GreyQueueIconIndex*/);
entityNode.ContextMenuStrip = queueContextMenuStrip;
entityNode.Tag = tag;
ApplyColor(entityNode, true);
Expand Down Expand Up @@ -5750,6 +5751,21 @@ private TreeNode CreateNode(string path,
return null;
}

private string GetNameAndMessageCountText(string name, QueueRuntimeProperties details)
{
MessageCountDetails messageCountDetails = new MessageCountDetails(details.ActiveMessageCount, details.DeadLetterMessageCount, details.ScheduledMessageCount, details.TransferMessageCount, details.TransferDeadLetterMessageCount);
var sb = new StringBuilder();
sb.Append(name);
if (showMessageCount && SelectedMessageCounts.Any())
{
sb.Append(" (");
var counts = SelectedMessageCounts.Select(smc => messageCountRetriever[smc](messageCountDetails));
sb.Append(string.Join(", ", counts));
sb.Append(")");
}
return sb.ToString();
}

private string GetNameAndMessageCountText(string name, MessageCountDetails details)
{
var sb = new StringBuilder();
Expand Down