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