public async Task <Unit> Handle(SendUpdateUserConnectionListMessageCommand messageCommand, CancellationToken cancellationToken) { foreach (var record in messageCommand.DynamoEvent.Records.Where(r => _validOperationTypes.Contains(r.EventName))) { var recordData = record.EventName == OperationType.MODIFY ? record.Dynamodb.NewImage : record.Dynamodb.OldImage; await MapFromStreamRecord(recordData) .Map(mapping => new UpdateUserConnectionMappingQueueMessage { IsDeletion = record.EventName == OperationType.REMOVE, UserConnectionMapping = mapping }) .IfSomeAsync(async message => await _sqsClient.SendMessage(message)); } return(Unit.Value); }
/// <summary> /// Send message with a visibility delay. /// </summary> /// <param name="messageBody">Message body.</param> /// <param name="delay">Time to wait until the message becomes visible.</param> public void SendMessage(string messageBody, TimeSpan delay) { _client.SendMessage(QueueName, messageBody, delay); }