in Storage/DynamoDb/SampleApplication/Controllers/LowLevel/TablesController.cs [97:153]
public async Task<IActionResult> Create([FromBody] CreateTableRequest request)
{
Console.WriteLine("Request Info:");
Console.WriteLine("\tTableName:");
Console.WriteLine($"\t{request.TableName}");
if (request.ProvisionedThroughput != null)
{
Console.WriteLine("\tReadCapacityUnits:");
Console.WriteLine($"\t{request.ProvisionedThroughput.ReadCapacityUnits}");
Console.WriteLine("\tWriteCapacityUnits:");
Console.WriteLine($"\t{request.ProvisionedThroughput.WriteCapacityUnits}");
}
if (request.KeySchema != null)
{
System.Console.WriteLine("\tKeySchemas:");
foreach (var k in request.KeySchema)
{
Console.WriteLine("\tAttributeName");
Console.WriteLine($"\t{k.AttributeName}");
Console.WriteLine("\tKeyType");
Console.WriteLine($"\t{k.KeyType}");
}
}
try
{
var res = await _dynamoClient.CreateTableAsync(request);
Console.WriteLine("Created table");
System.Console.WriteLine("\tTableName");
System.Console.WriteLine($"\t{res.TableDescription.TableName}");
System.Console.WriteLine("\tTableArn");
System.Console.WriteLine($"\t{res.TableDescription.TableArn}");
System.Console.WriteLine("\tTableId");
System.Console.WriteLine($"\t{res.TableDescription.TableId}");
System.Console.WriteLine("\tTableStatus");
System.Console.WriteLine($"\t{res.TableDescription.TableStatus}");
return new JsonResult(
new
{
message = $"Creating new table: {res.TableDescription.TableName}",
TableDescription = res.TableDescription
})
{ StatusCode = 202 };
}
catch (AmazonDynamoDBException addbe)
{
return AmazonExceptionHandlers.HandleAmazonDynamoDBException(addbe);
}
catch (AmazonServiceException ase)
{
AmazonExceptionHandlers.HandleAmazonServiceExceptionException(ase);
}
catch (AmazonClientException ace)
{
AmazonExceptionHandlers.HandleAmazonClientExceptionException(ace);
}
return StatusCode(500);
}