From bfa6dcf18a812ccfdf2fdaa01acdb4ec1ab82543 Mon Sep 17 00:00:00 2001 From: Sean Feldman Date: Thu, 6 Apr 2017 00:08:57 -0600 Subject: [PATCH] warn before purging --- Controls/HandleQueueControl.cs | 24 ++++++++++++++++-------- Controls/HandleSubscriptionControl.cs | 19 +++++++++++++++---- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/Controls/HandleQueueControl.cs b/Controls/HandleQueueControl.cs index eda9f0df..fe315cb7 100644 --- a/Controls/HandleQueueControl.cs +++ b/Controls/HandleQueueControl.cs @@ -408,6 +408,12 @@ public void PurgeMessages(int numberOfMessages) public async Task PurgeMessagesAsync() { + var result = MessageBox.Show(this, $"Would you like to purge {queueDescription.Path}?", "Purge messages", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); + if (result != DialogResult.Yes) + { + return 0; + } + var stopwatch = new Stopwatch(); stopwatch.Start(); var messagingFactory = MessagingFactory.CreateFromConnectionString(serviceBusHelper.ConnectionString); @@ -445,20 +451,23 @@ public async Task PurgeMessagesAsync() } stopwatch.Stop(); MainForm.SingletonMainForm.refreshEntity_Click(null, null); - writeToLog( - $"[{count}] messages have been purged from the [{queueDescription.Path}] queue in [{stopwatch.ElapsedMilliseconds}] milliseconds."); + writeToLog($"[{count}] messages have been purged from the [{queueDescription.Path}] queue in [{stopwatch.ElapsedMilliseconds}] milliseconds."); return count; } public async Task PurgeDeadletterQueueMessagesAsync() { + var dlqPath = QueueClient.FormatDeadLetterPath(queueDescription.Path); + var result = MessageBox.Show(this, $"Would you like to purge {dlqPath}?", "Purge messages", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); + if (result != DialogResult.Yes) + { + return 0; + } + var stopwatch = new Stopwatch(); stopwatch.Start(); var messagingFactory = MessagingFactory.CreateFromConnectionString(serviceBusHelper.ConnectionString); - var receiver = - await - messagingFactory.CreateMessageReceiverAsync( - QueueClient.FormatDeadLetterPath(queueDescription.Path), ReceiveMode.ReceiveAndDelete); + var receiver = await messagingFactory.CreateMessageReceiverAsync(dlqPath, ReceiveMode.ReceiveAndDelete); var count = 0; while (true) { @@ -491,8 +500,7 @@ public async Task PurgeDeadletterQueueMessagesAsync() } stopwatch.Stop(); MainForm.SingletonMainForm.refreshEntity_Click(null, null); - writeToLog( - $"[{count}] messages have been purged from the deadletter queue of the [{queueDescription.Path}] queue in [{stopwatch.ElapsedMilliseconds}] milliseconds."); + writeToLog($"[{count}] messages have been purged from the deadletter queue of the [{queueDescription.Path}] queue in [{stopwatch.ElapsedMilliseconds}] milliseconds."); return count; } diff --git a/Controls/HandleSubscriptionControl.cs b/Controls/HandleSubscriptionControl.cs index a1ff92d8..4d964c1d 100644 --- a/Controls/HandleSubscriptionControl.cs +++ b/Controls/HandleSubscriptionControl.cs @@ -383,10 +383,16 @@ public void GetMessageSessions() public async Task PurgeMessagesAsync() { + var entityPath = SubscriptionClient.FormatSubscriptionPath(subscriptionWrapper.SubscriptionDescription.TopicPath, subscriptionWrapper.SubscriptionDescription.Name); + var result = MessageBox.Show(this, $"Would you like to purge {entityPath}?", "Purge messages", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); + if (result != DialogResult.Yes) + { + return 0; + } + var stopwatch = new Stopwatch(); stopwatch.Start(); - var entityPath = SubscriptionClient.FormatSubscriptionPath(subscriptionWrapper.SubscriptionDescription.TopicPath, - subscriptionWrapper.SubscriptionDescription.Name); + var messagingFactory = MessagingFactory.CreateFromConnectionString(serviceBusHelper.ConnectionString); var receiver = await messagingFactory.CreateMessageReceiverAsync(entityPath, ReceiveMode.ReceiveAndDelete); var count = 0; @@ -427,10 +433,15 @@ public async Task PurgeMessagesAsync() public async Task PurgeDeadletterQueueMessagesAsync() { + var entityPath = SubscriptionClient.FormatDeadLetterPath(subscriptionWrapper.SubscriptionDescription.TopicPath, subscriptionWrapper.SubscriptionDescription.Name); + var result = MessageBox.Show(this, $"Would you like to purge {entityPath}?", "Purge messages", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); + if (result != DialogResult.Yes) + { + return 0; + } + var stopwatch = new Stopwatch(); stopwatch.Start(); - var entityPath = SubscriptionClient.FormatDeadLetterPath(subscriptionWrapper.SubscriptionDescription.TopicPath, - subscriptionWrapper.SubscriptionDescription.Name); var messagingFactory = MessagingFactory.CreateFromConnectionString(serviceBusHelper.ConnectionString); var receiver = await messagingFactory.CreateMessageReceiverAsync(entityPath, ReceiveMode.ReceiveAndDelete); var count = 0;