4
4
using Amazon . DynamoDBv2 ;
5
5
using Amazon . DynamoDBv2 . Model ;
6
6
using DynamoDBGenerator . Internal ;
7
+
7
8
namespace DynamoDBGenerator . Extensions ;
8
9
9
10
/// <summary>
10
11
/// Contains extension methods for <see cref="IDynamoDBMarshaller{TEntity,TArg,TEntityAttributeNameTracker,TArgumentAttributeValueTracker}"/>
11
12
/// </summary>
12
13
public static class DynamoDBMarshallerExtensions
13
14
{
14
-
15
15
/// <summary>
16
16
/// Creates an <see cref="IAttributeExpression"/> based on the expressions being built inside <paramref name="expressionBuilders"/>
17
17
/// The expression can be accessed in the same order as you passed arguments to <paramref name="expressionBuilders"/>.
@@ -24,7 +24,6 @@ params Func<TReferences, TArgumentReferences, string>[] expressionBuilders
24
24
where TReferences : IAttributeExpressionNameTracker
25
25
where TArgumentReferences : IAttributeExpressionValueTracker < TArg >
26
26
{
27
-
28
27
var nameTracker = item . AttributeExpressionNameTracker ( ) ;
29
28
var valueTracker = item . AttributeExpressionValueTracker ( ) ;
30
29
var expressions = Expressions ( nameTracker , valueTracker , expressionBuilders ) . ToArray ( ) ;
@@ -35,7 +34,8 @@ params Func<TReferences, TArgumentReferences, string>[] expressionBuilders
35
34
Names : CreateDictionary ( nameTracker . AccessedNames ( ) )
36
35
) ;
37
36
38
- static Dictionary < string , TValue > CreateDictionary < TValue > ( IEnumerable < KeyValuePair < string , TValue > > keyValuePairs )
37
+ static Dictionary < string , TValue > CreateDictionary < TValue > (
38
+ IEnumerable < KeyValuePair < string , TValue > > keyValuePairs )
39
39
{
40
40
var dict = new Dictionary < string , TValue > ( ) ;
41
41
foreach ( var keyValuePair in keyValuePairs )
@@ -44,93 +44,11 @@ static Dictionary<string, TValue> CreateDictionary<TValue>(IEnumerable<KeyValueP
44
44
return dict ;
45
45
}
46
46
47
- static IEnumerable < string > Expressions ( TReferences references , TArgumentReferences argumentReferences , IEnumerable < Func < TReferences , TArgumentReferences , string > > expressionBuilders )
47
+ static IEnumerable < string > Expressions ( TReferences references , TArgumentReferences argumentReferences ,
48
+ IEnumerable < Func < TReferences , TArgumentReferences , string > > expressionBuilders )
48
49
{
49
50
foreach ( var expressionBuilder in expressionBuilders )
50
51
yield return expressionBuilder ( references , argumentReferences ) ;
51
52
}
52
-
53
- }
54
-
55
- /// <summary>
56
- /// Converts the <see cref="IDynamoDBMarshaller{TEntity,TArg,TEntityAttributeNameTracker,TArgumentAttributeValueTracker}"/> into an <see cref="IDynamoDBClient{TEntity,TArgument,TReferences,TArgumentReferences}"/>.
57
- /// </summary>
58
- public static IDynamoDBClient < T , TArg , TReferences , TArgumentReferences > ToDynamoDBClient < T , TArg , TReferences , TArgumentReferences > (
59
- this IDynamoDBMarshaller < T , TArg , TReferences , TArgumentReferences > item ,
60
- string tableName ,
61
- IAmazonDynamoDB dynamoDB
62
- )
63
- where TReferences : IAttributeExpressionNameTracker
64
- where TArgumentReferences : IAttributeExpressionValueTracker < TArg >
65
- {
66
- return new DynamoDBClient < T , TArg , TReferences , TArgumentReferences > ( item , tableName , dynamoDB ) ;
67
- }
68
-
69
- /// <summary>
70
- /// Creates a <see cref="PutItemRequest"/>.
71
- /// </summary>
72
- public static PutItemRequest ToPutItemRequest < T , TArg , TReferences , TArgumentReferences > (
73
- this IDynamoDBMarshaller < T , TArg , TReferences , TArgumentReferences > item ,
74
- T entity ,
75
- ReturnValue returnValue ,
76
- string tableName
77
- )
78
- where TReferences : IAttributeExpressionNameTracker
79
- where TArgumentReferences : IAttributeExpressionValueTracker < TArg >
80
- where T : TArg
81
- {
82
- return item . ToPutItemRequestInternal ( entity , entity , null , returnValue , tableName ) ;
83
- }
84
-
85
- /// <summary>
86
- /// Creates a <see cref="PutItemRequest"/> with condition expression.
87
- /// </summary>
88
- public static PutItemRequest ToPutItemRequest < T , TArg , TReferences , TArgumentReferences > (
89
- this IDynamoDBMarshaller < T , TArg , TReferences , TArgumentReferences > item ,
90
- T entity ,
91
- Func < TReferences , TArgumentReferences , string > conditionExpressionBuilder ,
92
- ReturnValue returnValue ,
93
- string tableName
94
- )
95
- where TReferences : IAttributeExpressionNameTracker
96
- where TArgumentReferences : IAttributeExpressionValueTracker < TArg >
97
- where T : TArg
98
- {
99
- return item . ToPutItemRequestInternal ( entity , entity , conditionExpressionBuilder , returnValue , tableName ) ;
100
- }
101
-
102
- /// <summary>
103
- /// Creates a <see cref="UpdateItemRequest"/>.
104
- /// </summary>
105
- public static UpdateItemRequest ToUpdateItemRequest < T , TArg , TReferences , TArgumentReferences > (
106
- this IDynamoDBMarshaller < T , TArg , TReferences , TArgumentReferences > item ,
107
- TArg argument ,
108
- Func < IDynamoDBKeyMarshaller , TArg , Dictionary < string , AttributeValue > > keySelector ,
109
- Func < TReferences , TArgumentReferences , string > updateExpressionBuilder ,
110
- ReturnValue returnValue ,
111
- string tableName
112
- )
113
- where TReferences : IAttributeExpressionNameTracker
114
- where TArgumentReferences : IAttributeExpressionValueTracker < TArg >
115
- {
116
- return item . ToUpdateItemRequestInternal ( argument , keySelector , updateExpressionBuilder , null , returnValue , tableName ) ;
117
- }
118
-
119
- /// <summary>
120
- /// Creates a <see cref="UpdateItemRequest"/> with a condition expression.
121
- /// </summary>
122
- public static UpdateItemRequest ToUpdateItemRequest < T , TArg , TReferences , TArgumentReferences > (
123
- this IDynamoDBMarshaller < T , TArg , TReferences , TArgumentReferences > item ,
124
- TArg argument ,
125
- Func < IDynamoDBKeyMarshaller , TArg , Dictionary < string , AttributeValue > > keySelector ,
126
- Func < TReferences , TArgumentReferences , string > updateExpressionBuilder ,
127
- Func < TReferences , TArgumentReferences , string > conditionExpressionBuilder ,
128
- ReturnValue returnValue ,
129
- string tableName
130
- )
131
- where TReferences : IAttributeExpressionNameTracker
132
- where TArgumentReferences : IAttributeExpressionValueTracker < TArg >
133
- {
134
- return item . ToUpdateItemRequestInternal ( argument , keySelector , updateExpressionBuilder , conditionExpressionBuilder , returnValue , tableName ) ;
135
53
}
136
54
}
0 commit comments