using Amazon.DynamoDBv2.Model;
namespace BootCamp.DataAccess.Common.AWS.DynamoDB.Transaction
{
///
/// Common library for transaction item operations.
///
public static class TransactExtensions
{
///
/// Add put item into transaction scope.
///
///
///
public static void AddTransactWriteItemWithPut(this TransactScope scope, PutItemRequest putRequest)
{
if ((scope is null) || (putRequest is null)) return;
var transactWriteItem = new TransactWriteItem()
{
Put = new Put()
{
TableName = putRequest.TableName,
Item = putRequest.Item
}
};
scope.AddTransactWriteItem(transactWriteItem);
}
///
/// Add update item into transaction scope.
///
///
///
public static void AddTransactWriteItemWithUpdate(this TransactScope scope, UpdateItemRequest updateRequest)
{
if ((scope is null) || (updateRequest is null)) return;
var transactWriteItem = new TransactWriteItem()
{
Update = new Update()
{
TableName = updateRequest.TableName,
Key = updateRequest.Key,
ExpressionAttributeValues = updateRequest.ExpressionAttributeValues,
UpdateExpression = updateRequest.UpdateExpression,
ConditionExpression = updateRequest.ConditionExpression
}
};
scope.AddTransactWriteItem(transactWriteItem);
}
///
/// Add delete item into transaction scope.
///
///
///
public static void AddTransactWriteItemWithDelete(this TransactScope scope, DeleteItemRequest deleteRequest)
{
if ((scope is null) || (deleteRequest is null)) return;
var transactDeleteItem = new TransactWriteItem()
{
Delete = new Delete()
{
TableName = deleteRequest.TableName,
Key = deleteRequest.Key,
ExpressionAttributeValues = deleteRequest.ExpressionAttributeValues,
ExpressionAttributeNames = deleteRequest.ExpressionAttributeNames,
ConditionExpression = deleteRequest.ConditionExpression
}
};
scope.AddTransactWriteItem(transactDeleteItem);
}
}
}