Exemplo n.º 1
0
        public AmazonSQSMessageQueueModel <T> ReceiveMessageFromQueue(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint regionEndpoint = null)
        {
            try
            {
                IAmazonSQS sqs = new AmazonSQSClient(awsAccessKeyId, awsSecretAccessKey, regionEndpoint ?? RegionEndpoint.APSouth1);

                ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest
                {
                    QueueUrl            = QueueUrl,
                    MaxNumberOfMessages = 1,
                    WaitTimeSeconds     = 20
                };

                ReceiveMessageResponse receiveMessageResponse = sqs.ReceiveMessageAsync(receiveMessageRequest).Result;


                if (receiveMessageResponse != null && receiveMessageResponse.Messages != null)
                {
                    Message message = receiveMessageResponse.Messages.FirstOrDefault();
                    if (message != null && message.Body != null)
                    {
                        var messageModel = new AmazonSQSMessageQueueModel <T>
                        {
                            MessageBody       = JsonConvert.DeserializeObject <T>(message.Body),
                            MessageId         = message.MessageId,
                            ReceiptHandle     = message.ReceiptHandle,
                            MessageAttributes = message.Attributes
                        };
                        return(messageModel);
                    }
                }

                return(null);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 2
0
        public string DeleteMessageFromQueue(AmazonSQSMessageQueueModel <T> model, string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint regionEndpoint = null)
        {
            try
            {
                if (model.ReceiptHandle != null)
                {
                    IAmazonSQS sqs = new AmazonSQSClient(awsAccessKeyId, awsSecretAccessKey, regionEndpoint ?? RegionEndpoint.APSouth1);

                    DeleteMessageRequest deleteRequest = new DeleteMessageRequest
                    {
                        QueueUrl      = QueueUrl,
                        ReceiptHandle = model.ReceiptHandle
                    };
                    var response = sqs.DeleteMessageAsync(deleteRequest).Result;
                    return(response.HttpStatusCode.ToString());
                }
            }
            catch
            {
            }
            return(null);
        }