public ReceivedMessage GetMessage() { if (!_queueUrlResolved) { return(null); } lock (_lock) { if (_receivedMessages.Count == 0) { ReceiveMessageResponse messages; try { messages = _client.ReceiveMessageAsync(new ReceiveMessageRequest { QueueUrl = _queueUrl, MaxNumberOfMessages = _maxMessages, WaitTimeSeconds = _waitTimeSeconds }, _cancellationToken).Result; } catch { return(null); } foreach (var message in messages.Messages) { var acknowledgementToken = new AcknowledgementToken(message.MessageId, message.Body, message.ReceiptHandle); _acknowledgementTokens.Add(acknowledgementToken.MessageId, acknowledgementToken); _receivedMessages.Enqueue(new ReceivedMessage( new MemoryStream(Convert.FromBase64String(message.Body)), acknowledgementToken)); } } return(_receivedMessages.Count > 0 ? _receivedMessages.Dequeue() : null); } }
public ReceivedMessage GetMessage() { lock (_lock) { if (_receivedMessages.Count == 0) { var messages = _queueClient.ReceiveMessages(_maxMessages); foreach (var message in messages.Value) { var acknowledgementToken = new AcknowledgementToken(message.MessageId, message.MessageText, message.PopReceipt); _acknowledgementTokens.Add(acknowledgementToken.MessageId, acknowledgementToken); _receivedMessages.Enqueue(new ReceivedMessage( new MemoryStream(Convert.FromBase64String(message.MessageText)), acknowledgementToken)); } } return(_receivedMessages.Count > 0 ? _receivedMessages.Dequeue() : null); } }