Exemplo n.º 1
0
        private async void DoBodyWork(object state)
        {
            var receiveBodyMessageRequest = new ReceiveMessageRequest()
            {
                AttributeNames = new List <string>()
                {
                    "All"
                },
                QueueUrl            = _config.Value.AwsSqsBodyQueueUrl,
                WaitTimeSeconds     = _config.Value.AwsSqsLongPollTimeInSeconds,
                MaxNumberOfMessages = 10
            };

            _bodyLogger.LogDebug("Heartbeat: {Now}", DateTime.Now);
            var receiveBodyMessageResponse = await _sqsBodyClient.ReceiveMessageAsync(receiveBodyMessageRequest);

            if (receiveBodyMessageResponse.Messages.Count > 0)
            {
                foreach (var message in receiveBodyMessageResponse.Messages)
                {
                    _bodyLogger.LogDebug("Message Id: {MessageId}", message.MessageId);
                    var awsSqsMessage = AwsSqsMessage.FromJson(message.Body);
                    awsSqsMessage.Body = message.Body;

                    if (message.Body.Contains("Email_Body_Log"))
                    {
                        var emailLogProcessor = _emailLogProcessor;

                        if (emailLogProcessor == null)
                        {
                            _bodyLogger.LogDebug("Email processor not found for {@AwsSqsMessage}. Deleting message", awsSqsMessage);
                            await DeleteBodyMessage(message);

                            continue;
                        }
                        var result = emailLogProcessor.ProcessMessage(awsSqsMessage);
                        if (result == true)
                        {
                            await DeleteBodyMessage(message);
                        }
                    }
                    else
                    {
                        _bodyLogger.LogDebug("Not an email body message for {@AwsSqsMessage}. Deleting message", awsSqsMessage);
                        await DeleteBodyMessage(message);

                        continue;
                    }
                }
            }
        }
Exemplo n.º 2
0
        private async void DoWork(object state)
        {
            var receiveMessageRequest = new ReceiveMessageRequest()
            {
                AttributeNames = new List <string>()
                {
                    "All"
                },
                QueueUrl            = _config.Value.AwsSqsQueueUrl,
                WaitTimeSeconds     = _config.Value.AwsSqsLongPollTimeInSeconds,
                MaxNumberOfMessages = 10
            };

            _logger.LogDebug("Heartbeat: {Now}", DateTime.Now);
            var receiveMessageResponse = await _sqsClient.ReceiveMessageAsync(receiveMessageRequest);

            if (receiveMessageResponse.Messages.Count > 0)
            {
                foreach (var message in receiveMessageResponse.Messages)
                {
                    _logger.LogDebug("Message Id: {MessageId}", message.MessageId);
                    var notificationLogBodyAnon2 = JsonConvert.DeserializeAnonymousType(message.Body, new {
                        Message = "",
                    });
                    var notificationLogBodyMessageAnon2 = JsonConvert.DeserializeAnonymousType(notificationLogBodyAnon2.Message, new {
                        notificationType = "",
                    });
                    var awsSqsMessage = AwsSqsMessage.FromJson(message.Body);
                    awsSqsMessage.Body = message.Body;
                    var emailProcessor = _emailLogProcessor(notificationLogBodyMessageAnon2.notificationType);

                    if (emailProcessor == null)
                    {
                        _logger.LogDebug("Email processor not found for {@AwsSqsMessage}. Deleting message", awsSqsMessage);
                        await DeleteMessage(message);

                        continue;
                    }
                    var result = emailProcessor.ProcessMessage(awsSqsMessage);
                    if (result == true)
                    {
                        await DeleteMessage(message);
                    }
                }
            }
        }