private static void ConditionalWriteSample(AmazonDynamoDBClient client)
{
Table table = Table.LoadTable(client, "Actors");
Document d = table.GetItem("Christian Bale");
int version = d["Version"].AsInt();
double height = d["Height"].AsDouble();
Console.WriteLine("Retrieved Item Version #" + version.ToString());
var request = new UpdateItemRequest
{
Key = new Dictionary<string, AttributeValue>() { { "Name", new AttributeValue { S = "Christian Bale" } } },
ExpressionAttributeNames = new Dictionary<string, string>()
{
{"#H", "Height"},
{"#V", "Version"}
},
ExpressionAttributeValues = new Dictionary<string, AttributeValue>()
{
{":ht", new AttributeValue{N=(height+.01).ToString()}},
{":incr", new AttributeValue{N="1"}},
{":v", new AttributeValue{N=version.ToString()}}
},
UpdateExpression = "SET #V = #V + :incr, #H = :ht",
ConditionExpression = "#V = :v",
TableName = "Actors"
};
try
{
Console.ReadKey();
var response = client.UpdateItem(request);
Console.WriteLine("Updated succeeded.");
}
catch (Exception ex)
{
Console.WriteLine("Update failed. " + ex.Message);
}
Console.ReadKey();
}