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; } }
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); }