Skip to content

Commit

Permalink
Fixed deadletter queue for subscriptions
Browse files Browse the repository at this point in the history
  • Loading branch information
paolos authored and paolos committed Mar 8, 2017
1 parent 58a678c commit d5cc072
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 101 deletions.
1 change: 0 additions & 1 deletion Controls/HandleQueueControl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3474,7 +3474,6 @@ private void resubmitSelectedDeadletterMessagesInBatchModeToolStripMenuItem_Clic
{
try
{

if (deadletterDataGridView.SelectedRows.Count <= 0)
{
return;
Expand Down
108 changes: 8 additions & 100 deletions Controls/HandleSubscriptionControl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2722,65 +2722,19 @@ private void repairAndResubmitMessageToolStripMenuItem_Click(object sender, Even
messagesDataGridView_CellDoubleClick(messagesDataGridView, new DataGridViewCellEventArgs(0, currentMessageRowIndex));
}

private async void resubmitSelectedMessagesInBatchModeToolStripMenuItem_Click(object sender, EventArgs e)
private void resubmitSelectedMessagesInBatchModeToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (messagesDataGridView.SelectedRows.Count <= 0)
{
return;
}
string entityPath;
using (var form = new SelectEntityForm(SelectEntityDialogTitle, SelectEntityGrouperTitle, SelectEntityLabelText))
using (var form = new MessageForm(messagesDataGridView.SelectedRows.Cast<DataGridViewRow>()
.Select(r => (BrokeredMessage)r.DataBoundItem), serviceBusHelper, writeToLog))
{
if (form.ShowDialog() != DialogResult.OK)
{
return;
}
if (string.IsNullOrWhiteSpace(form.Path))
{
return;
}
entityPath = form.Path;
form.ShowDialog();
}
var sent = 0;
var messageSender = await serviceBusHelper.MessagingFactory.CreateMessageSenderAsync(entityPath);
var messages = messagesDataGridView.SelectedRows.Cast<DataGridViewRow>().Select(r =>
{
BodyType bodyType;
var message = r.DataBoundItem as BrokeredMessage;
serviceBusHelper.GetMessageText(message, out bodyType);
if (bodyType == BodyType.Wcf)
{
var wcfUri = serviceBusHelper.IsCloudNamespace ?
new Uri(serviceBusHelper.NamespaceUri, messageSender.Path) :
new UriBuilder
{
Host = serviceBusHelper.NamespaceUri.Host,
Path = string.Format("{0}/{1}", serviceBusHelper.NamespaceUri.AbsolutePath, messageSender.Path),
Scheme = "sb"
}.Uri;
return serviceBusHelper.CreateMessageForWcfReceiver(message,
0,
false,
false,
wcfUri);
}
return serviceBusHelper.CreateMessageForApiReceiver(message,
0,
false,
false,
false,
bodyType,
null);
});
IEnumerable<BrokeredMessage> brokeredMessages = messages as IList<BrokeredMessage> ?? messages.ToList();
if (brokeredMessages.Any())
{
sent = brokeredMessages.Count();
await messageSender.SendBatchAsync(brokeredMessages);
}
writeToLog(string.Format(MessageSentMessage, sent, entityPath));
}
catch (Exception ex)
{
Expand Down Expand Up @@ -2808,65 +2762,19 @@ private void repairAndResubmitDeadletterMessageToolStripMenuItem_Click(object se
deadletterDataGridView_CellDoubleClick(deadletterDataGridView, new DataGridViewCellEventArgs(0, currentDeadletterMessageRowIndex));
}

private async void resubmitSelectedDeadletterMessagesInBatchModeToolStripMenuItem_Click(object sender, EventArgs e)
private void resubmitSelectedDeadletterMessagesInBatchModeToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (deadletterDataGridView.SelectedRows.Count <= 0)
{
return;
}
string entityPath;
using (var form = new SelectEntityForm(SelectEntityDialogTitle, SelectEntityGrouperTitle, SelectEntityLabelText))
using (var form = new MessageForm(deadletterDataGridView.SelectedRows.Cast<DataGridViewRow>()
.Select(r => (BrokeredMessage)r.DataBoundItem), serviceBusHelper, writeToLog))
{
if (form.ShowDialog() != DialogResult.OK)
{
return;
}
if (string.IsNullOrWhiteSpace(form.Path))
{
return;
}
entityPath = form.Path;
form.ShowDialog();
}
var sent = 0;
var messageSender = await serviceBusHelper.MessagingFactory.CreateMessageSenderAsync(entityPath);
var messages = deadletterDataGridView.SelectedRows.Cast<DataGridViewRow>().Select(r =>
{
BodyType bodyType;
var message = r.DataBoundItem as BrokeredMessage;
serviceBusHelper.GetMessageText(message, out bodyType);
if (bodyType == BodyType.Wcf)
{
var wcfUri = serviceBusHelper.IsCloudNamespace ?
new Uri(serviceBusHelper.NamespaceUri, messageSender.Path) :
new UriBuilder
{
Host = serviceBusHelper.NamespaceUri.Host,
Path = string.Format("{0}/{1}", serviceBusHelper.NamespaceUri.AbsolutePath, messageSender.Path),
Scheme = "sb"
}.Uri;
return serviceBusHelper.CreateMessageForWcfReceiver(message,
0,
false,
false,
wcfUri);
}
return serviceBusHelper.CreateMessageForApiReceiver(message,
0,
false,
false,
false,
bodyType,
null);
});
IEnumerable<BrokeredMessage> brokeredMessages = messages as IList<BrokeredMessage> ?? messages.ToList();
if (brokeredMessages.Any())
{
sent = brokeredMessages.Count();
await messageSender.SendBatchAsync(brokeredMessages);
}
writeToLog(string.Format(MessageSentMessage, sent, entityPath));
}
catch (Exception ex)
{
Expand Down

0 comments on commit d5cc072

Please sign in to comment.