Exemple #1
0
        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);
            }
        }