diff --git a/.doc_gen/metadata/dynamodb_metadata.yaml b/.doc_gen/metadata/dynamodb_metadata.yaml index 59c23dc0bd0..bbd7f248228 100644 --- a/.doc_gen/metadata/dynamodb_metadata.yaml +++ b/.doc_gen/metadata/dynamodb_metadata.yaml @@ -5,6 +5,14 @@ dynamodb_Hello: synopsis: get started using &DDB;. category: Hello languages: + .NET: + versions: + - sdk_version: 3 + github: dotnetv3/dynamodb + excerpts: + - description: + snippet_tags: + - DynamoDB.dotnetv3.HelloDynamoDB JavaScript: versions: - sdk_version: 3 diff --git a/dotnetv3/dynamodb/README.md b/dotnetv3/dynamodb/README.md index f4462774861..2b7ad367e84 100644 --- a/dotnetv3/dynamodb/README.md +++ b/dotnetv3/dynamodb/README.md @@ -1,4 +1,4 @@ - + # DynamoDB code examples for the SDK for .NET ## Overview @@ -30,24 +30,29 @@ For prerequisites, see the [README](../README.md#Prerequisites) in the `dotnetv3 + +### Get started + +* [Hello DynamoDB](scenarios/DynamoDB_Basics/DynamoDB_Actions/HelloDynamoDB.cs#L4) (`ListTables`) + ### Single actions Code excerpts that show you how to call individual service functions. -* [Create a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L8) (`CreateTable`) -* [Delete a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L378) (`DeleteTable`) -* [Delete an item from a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L251) (`DeleteItem`) +* [Create a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L14) (`CreateTable`) +* [Delete a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L389) (`DeleteTable`) +* [Delete an item from a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L262) (`DeleteItem`) * [Get a batch of items](low-level-api/LowLevelBatchGet/LowLevelBatchGet.cs#L4) (`BatchGetItem`) -* [Get an item from a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L165) (`GetItem`) +* [Get an item from a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L171) (`GetItem`) * [Get information about a table](low-level-api/LowLevelTableExample/LowLevelTableExample.cs#L126) (`DescribeTable`) * [List tables](low-level-api/LowLevelTableExample/LowLevelTableExample.cs#L102) (`ListTables`) -* [Put an item in a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L83) (`PutItem`) -* [Query a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L286) (`Query`) +* [Put an item in a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L89) (`PutItem`) +* [Query a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L297) (`Query`) * [Run a PartiQL statement](scenarios/PartiQL_Basics_Scenario/PartiQL_Basics_Scenario/PartiQLMethods.cs#L163) (`ExecuteStatement`) -* [Run batches of PartiQL statements](scenarios/PartiQL_Batch_Scenario/PartiQL_Batch_Scenario/PartiQLBatchMethods.cs#L107) (`BatchExecuteStatement`) -* [Scan a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L339) (`Scan`) -* [Update an item in a table](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L113) (`UpdateItem`) -* [Write a batch of items](scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs#L196) (`BatchWriteItem`) +* [Run batches of PartiQL statements](scenarios/PartiQL_Batch_Scenario/PartiQL_Batch_Scenario/PartiQLBatchMethods.cs#L10) (`BatchExecuteStatement`) +* [Scan a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L350) (`Scan`) +* [Update an item in a table](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L119) (`UpdateItem`) +* [Write a batch of items](scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs#L202) (`BatchWriteItem`) ### Scenarios @@ -64,18 +69,21 @@ functions within the same service. Sample applications that work across multiple AWS services. -* [Create a web application to track DynamoDB data](../cross_service/DynamoDbItemTracker) +* [Create a serverless application to manage photos](../cross-service/PhotoAssetManager) +* [Create a web application to track DynamoDB data](../cross-service/DynamoDbItemTracker) ## Run the examples ### Instructions -For general instructions to run the examples, see the [README](../README.md#building-and-running-the-code-examples) in the `dotnetv3` folder. +For general instructions to run the examples, see the +[README](../README.md#building-and-running-the-code-examples) in the `dotnetv3` folder. Some projects might include a settings.json file. Before compiling the project, -you can change these values to match your own account and resources. Alternatively, add a settings.local.json file with -your local settings, which will be loaded automatically when the application runs. +you can change these values to match your own account and resources. Alternatively, +add a settings.local.json file with your local settings, which will be loaded automatically +when the application runs. After the example compiles, you can run it from the command line. To do so, navigate to the folder that contains the .csproj file and run the following command: @@ -83,8 +91,8 @@ the folder that contains the .csproj file and run the following command: ``` dotnet run ``` -Alternatively, you can run the example from within your IDE. +Alternatively, you can run the example from within your IDE. Before you compile the .NET application, you can optionally set configuration values @@ -98,6 +106,10 @@ dotnet run Alternatively, you can run the example from within your IDE. +#### Hello DynamoDB + +This example shows you how to get started using DynamoDB. + #### Get started with tables, items, and queries diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDB_Actions.csproj b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDB_Actions.csproj new file mode 100644 index 00000000000..26dee29fbf9 --- /dev/null +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDB_Actions.csproj @@ -0,0 +1,14 @@ + + + + Exe + net6.0 + enable + enable + + + + + + + diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs similarity index 96% rename from dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs rename to dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs index 61106484e16..720fc5bd24b 100644 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDbMethods.cs +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/DynamoDbMethods.cs @@ -1,7 +1,13 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -namespace DynamoDB_Basics_Scenario +using System.Text.Json; +using Amazon.DynamoDBv2; +using Amazon.DynamoDBv2.DataModel; +using Amazon.DynamoDBv2.DocumentModel; +using Amazon.DynamoDBv2.Model; + +namespace DynamoDB_Actions { public class DynamoDbMethods { @@ -210,7 +216,12 @@ public static List ImportMovies(string movieFileName) using var sr = new StreamReader(movieFileName); string json = sr.ReadToEnd(); - var allMovies = JsonConvert.DeserializeObject>(json); + var allMovies = JsonSerializer.Deserialize>( + json, + new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }); // Now return the first 250 entries. return allMovies.GetRange(0, 250); @@ -237,11 +248,11 @@ public static async Task BatchWriteItemsAsync( var context = new DynamoDBContext(client); - var bookBatch = context.CreateBatchWrite(); - bookBatch.AddPutItems(movies); + var movieBatch = context.CreateBatchWrite(); + movieBatch.AddPutItems(movies); Console.WriteLine("Adding imported movies to the table."); - await bookBatch.ExecuteAsync(); + await movieBatch.ExecuteAsync(); return movies.Count; } diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/HelloDynamoDB.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/HelloDynamoDB.cs new file mode 100644 index 00000000000..edbfd6c2c05 --- /dev/null +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/HelloDynamoDB.cs @@ -0,0 +1,36 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +// snippet-start:[DynamoDB.dotnetv3.HelloDynamoDB] + +using Amazon.DynamoDBv2; +using Amazon.DynamoDBv2.Model; + +namespace DynamoDB_Actions; + +public static class HelloDynamoDB +{ + static async Task Main(string[] args) + { + var dynamoDbClient = new AmazonDynamoDBClient(); + + Console.WriteLine($"Hello Amazon Dynamo DB! Following are some of your tables:"); + Console.WriteLine(); + + // You can use await and any of the async methods to get a response. + // Let's get the first five tables. + var response = await dynamoDbClient.ListTablesAsync( + new ListTablesRequest() + { + Limit = 5 + }); + + foreach (var table in response.TableNames) + { + Console.WriteLine($"\tTable: {table}"); + Console.WriteLine(); + } + } +} + +// snippet-end:[DynamoDB.dotnetv3.HelloDynamoDB] \ No newline at end of file diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/Movie.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/Movie.cs similarity index 86% rename from dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/Movie.cs rename to dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/Movie.cs index 3a34098a9cd..e42603ed6ac 100644 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/Movie.cs +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/Movie.cs @@ -1,10 +1,10 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -namespace DynamoDB_Basics_Scenario -{ - using Amazon.DynamoDBv2.DataModel; +using Amazon.DynamoDBv2.DataModel; +namespace DynamoDB_Actions +{ [DynamoDBTable("movie_table")] public class Movie { diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/MovieInfo.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/MovieInfo.cs similarity index 90% rename from dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/MovieInfo.cs rename to dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/MovieInfo.cs index 8f1342237c9..b8ec40134a7 100644 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/MovieInfo.cs +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Actions/MovieInfo.cs @@ -1,11 +1,10 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -namespace DynamoDB_Basics_Scenario -{ - using System; - using Amazon.DynamoDBv2.DataModel; +using Amazon.DynamoDBv2.DataModel; +namespace DynamoDB_Actions +{ public class MovieInfo { [DynamoDBProperty("directors")] diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario.sln b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario.sln new file mode 100644 index 00000000000..97b3d608b03 --- /dev/null +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario.sln @@ -0,0 +1,48 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32328.378 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamoDB_Basics_Scenario", "DynamoDB_Basics_Scenario\DynamoDB_Basics_Scenario.csproj", "{C5E431E0-4ED7-4C38-A655-BFDEFD179C74}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamoDB_Basics_ScenarioTests", "DynamoDB_Basics_ScenarioTests\DynamoDB_Basics_ScenarioTests.csproj", "{0B77DDFD-A2DF-41BD-8D61-3B93167EA34F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Actions", "Actions", "{6626DB2A-9F51-4984-9E97-74011A91A0F7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scenarios", "Scenarios", "{C1ED3556-F8C6-4E93-B650-B013AB277F75}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{F2D31BC8-AB1A-463F-AB53-FDB670084778}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamoDB_Actions", "DynamoDB_Actions\DynamoDB_Actions.csproj", "{B4C172AE-AE05-499A-B16A-72C01A7F24C7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C5E431E0-4ED7-4C38-A655-BFDEFD179C74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5E431E0-4ED7-4C38-A655-BFDEFD179C74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5E431E0-4ED7-4C38-A655-BFDEFD179C74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5E431E0-4ED7-4C38-A655-BFDEFD179C74}.Release|Any CPU.Build.0 = Release|Any CPU + {0B77DDFD-A2DF-41BD-8D61-3B93167EA34F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B77DDFD-A2DF-41BD-8D61-3B93167EA34F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B77DDFD-A2DF-41BD-8D61-3B93167EA34F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B77DDFD-A2DF-41BD-8D61-3B93167EA34F}.Release|Any CPU.Build.0 = Release|Any CPU + {B4C172AE-AE05-499A-B16A-72C01A7F24C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4C172AE-AE05-499A-B16A-72C01A7F24C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4C172AE-AE05-499A-B16A-72C01A7F24C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4C172AE-AE05-499A-B16A-72C01A7F24C7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {C5E431E0-4ED7-4C38-A655-BFDEFD179C74} = {C1ED3556-F8C6-4E93-B650-B013AB277F75} + {0B77DDFD-A2DF-41BD-8D61-3B93167EA34F} = {F2D31BC8-AB1A-463F-AB53-FDB670084778} + {B4C172AE-AE05-499A-B16A-72C01A7F24C7} = {6626DB2A-9F51-4984-9E97-74011A91A0F7} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {39F603C9-C788-4E8C-8D3E-937478525CF9} + EndGlobalSection +EndGlobal diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics.cs index d29306e4a8c..2389bdfbd9a 100644 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics.cs +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics.cs @@ -1,6 +1,5 @@ -// -// Copyright (c) PlaceholderCompany. All rights reserved. -// +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 // snippet-start:[DynamoDB.dotnetv3.DynamoDB_Basics_Scenario] // This example application performs the following basic Amazon DynamoDB @@ -20,6 +19,9 @@ // Before you run this example, download 'movies.json' from // https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/resources/sample_files, // and put it in the same folder as the example. + +using DynamoDB_Actions; + namespace DynamoDB_Basics_Scenario { public class DynamoDB_Basics @@ -33,7 +35,7 @@ public static async Task Main() var tableName = "movie_table"; - // relative path to moviedata.json in the local repository. + // Relative path to moviedata.json in the local repository. var movieFileName = @"..\..\..\..\..\..\..\..\resources\sample_files\movies.json"; DisplayInstructions(); diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics_Scenario.csproj b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics_Scenario.csproj index 2924a92dc9d..0a7150303ce 100644 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics_Scenario.csproj +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics_Scenario.csproj @@ -7,12 +7,16 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics_Scenario.sln b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics_Scenario.sln deleted file mode 100644 index 9767e343e47..00000000000 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_Scenario/DynamoDB_Basics_Scenario.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.1.32328.378 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamoDB_Basics_Scenario", "DynamoDB_Basics_Scenario.csproj", "{7A96D617-6774-4891-A1C0-D7B71BC0D79B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamoDB_Basics_ScenarioTests", "..\DynamoDB_Basics_ScenarioTests\DynamoDB_Basics_ScenarioTests.csproj", "{A6ECEAE6-9A3E-44A1-B45C-79199EF8F4C1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7A96D617-6774-4891-A1C0-D7B71BC0D79B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A96D617-6774-4891-A1C0-D7B71BC0D79B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A96D617-6774-4891-A1C0-D7B71BC0D79B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A96D617-6774-4891-A1C0-D7B71BC0D79B}.Release|Any CPU.Build.0 = Release|Any CPU - {A6ECEAE6-9A3E-44A1-B45C-79199EF8F4C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6ECEAE6-9A3E-44A1-B45C-79199EF8F4C1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6ECEAE6-9A3E-44A1-B45C-79199EF8F4C1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6ECEAE6-9A3E-44A1-B45C-79199EF8F4C1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {39F603C9-C788-4E8C-8D3E-937478525CF9} - EndGlobalSection -EndGlobal diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDB_Basics_ScenarioTests.csproj b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDB_Basics_ScenarioTests.csproj index 9eb8115d429..0e8bf798c7d 100644 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDB_Basics_ScenarioTests.csproj +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDB_Basics_ScenarioTests.csproj @@ -7,15 +7,13 @@ false enable + true - - + + - - - all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDbMethodsTests.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDbMethodsTests.cs index 6342b14cf5d..30eab0477a6 100644 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDbMethodsTests.cs +++ b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/DynamoDbMethodsTests.cs @@ -1,10 +1,10 @@ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 +using DynamoDB_Actions; + namespace DynamoDB_Basics_Scenario.Tests { - - [TestCaseOrderer("OrchestrationService.Project.Orderers.PriorityOrderer", "OrchestrationService.Project")] public class DynamoDbMethodsTests { readonly AmazonDynamoDBClient client = new(); diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/PriorityOrderer.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/PriorityOrderer.cs deleted file mode 100644 index 2010746aa2c..00000000000 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/PriorityOrderer.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -using System.Collections.Generic; -using System.Linq; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace DynamoDB_Basics_Scenario.Tests -{ - public class PriorityOrderer : ITestCaseOrderer - { - - public IEnumerable OrderTestCases( - IEnumerable testCases) where TTestCase : ITestCase - { - string assemblyName = typeof(TestPriorityAttribute).AssemblyQualifiedName!; - var sortedMethods = new SortedDictionary>(); - foreach (TTestCase testCase in testCases) - { - int priority = testCase.TestMethod.Method - .GetCustomAttributes(assemblyName) - .FirstOrDefault() - ?.GetNamedArgument(nameof(TestPriorityAttribute.Priority)) ?? 0; - - GetOrCreate(sortedMethods, priority).Add(testCase); - } - - foreach (TTestCase testCase in - sortedMethods.Keys.SelectMany( - priority => sortedMethods[priority].OrderBy( - testCase => testCase.TestMethod.Method.Name))) - { - yield return testCase; - } - } - - private static TValue GetOrCreate( - IDictionary dictionary, TKey key) - where TKey : struct - where TValue : new() => - dictionary.TryGetValue(key, out TValue result) - ? result - : (dictionary[key] = new TValue()); - } -} diff --git a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/TestPriorityAttribute.cs b/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/TestPriorityAttribute.cs deleted file mode 100644 index 01b643c0e77..00000000000 --- a/dotnetv3/dynamodb/scenarios/DynamoDB_Basics/DynamoDB_Basics_ScenarioTests/TestPriorityAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -using System; - -namespace DynamoDB_Basics_Scenario.Tests -{ - [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] - public class TestPriorityAttribute : Attribute - { - public int Priority { get; private set; } - - public TestPriorityAttribute(int priority) => Priority = priority; - } -}