private static Task PushMessage(ISenderClient client, DeadLetterQueueMessage model) { var eventName = model.EventName; var body = Encoding.UTF8.GetBytes(model.JsonResponse); var message = new Message { MessageId = model.Id, Body = body, Label = eventName }; return(client.SendAsync(message)); }
private async Task <List <DeadLetterQueueMessage> > GetMessages(string entityPath) { var dlqMessages = new List <DeadLetterQueueMessage>(); var client = new MessageReceiver(_serviceBusPersisterConnection.ServiceBusConnectionString, entityPath); var queueStillHasMessages = true; while (queueStillHasMessages) { var tokens = new List <string>(MaxMessageCount); var messages = await client.ReceiveAsync(MaxMessageCount); if (messages == null || !messages.Any()) { queueStillHasMessages = false; continue; } foreach (var msg in messages) { using (var reader = new StreamReader(msg.GetBody <Stream>(), Encoding.UTF8)) { var deadLetterQueueMessage = new DeadLetterQueueMessage { Id = msg.MessageId, Created = msg.ScheduledEnqueueTimeUtc, EventName = msg.Label, JsonResponse = await reader.ReadToEndAsync() }; dlqMessages.Add(deadLetterQueueMessage); } tokens.Add(msg.SystemProperties.LockToken); } await client.CompleteAsync(tokens); } return(dlqMessages); }
public Task RepublishQueueMessage(DeadLetterQueueMessage model) { return(PushMessage(_serviceBusPersisterConnection.QueueConnection.QueueClient, model)); }