internal void AddRequestHandler(AmazonDynamoDBRequest request, bool isAsync) { ((Amazon.Runtime.Internal.IAmazonWebServiceRequest)request).AddBeforeRequestHandler(isAsync ? new RequestEventHandler(this.UserAgentRequestEventHandlerAsync) : new RequestEventHandler(this.UserAgentRequestEventHandlerSync) ); }
public IEnumerable <T> Query <T>(AmazonDynamoDBRequest query) { var queryResult = base.GetDynamo() .QueryAsync((QueryRequest)query) .Result; return(queryResult .Items .Select(x => x.Map <T>()) .ToList()); }
public void Execute(AmazonDynamoDBRequest dynamoRequest) { var item = new TransactWriteItem(); if (dynamoRequest is UpdateItemRequest) { item.Update = ((UpdateItemRequest)dynamoRequest).Convert(); } if (dynamoRequest is PutItemRequest) { item.Put = ((PutItemRequest)dynamoRequest).Convert(); } if (dynamoRequest is DeleteItemRequest) { item.Delete = ((DeleteItemRequest)dynamoRequest).Convert(); } _transactionItems.Add(item); }
public RequestWrapper(AmazonDynamoDBClient mDynamoDB, AmazonDynamoDBRequest req) { this.mDynamoDB = mDynamoDB; this.mReq = req; }
public override int ExecuteNonQuery(ServiceCursorDef cursorDef, IDataParameterCollection parms, CommandBehavior behavior) { Initialize(); Query query = cursorDef.Query as Query; Dictionary <string, AttributeValue> values = new Dictionary <string, AttributeValue>(); if (parms.Count > 0) { for (int i = 0; i < parms.Count; i++) { ServiceParameter parm = parms[i] as ServiceParameter; DynamoDBHelper.GXToDynamoQueryParameter("", values, parm); } } var pattern = @"\((.*) = :(.*)\)"; Dictionary <string, AttributeValue> keyCondition = new Dictionary <string, AttributeValue>(); List <string> filters = new List <string>(); foreach (var keyFilter in query.Filters) { var match = Regex.Match(keyFilter, pattern); String varName = match.Groups[2].Value; if (match.Groups.Count > 1) { keyCondition[match.Groups[1].Value] = values[varName]; } } AmazonDynamoDBRequest request = null; switch (query.CursorType) { case ServiceCursorDef.CursorType.Select: throw new NotImplementedException(); case ServiceCursorDef.CursorType.Delete: request = new DeleteItemRequest() { TableName = query.TableName, Key = keyCondition }; mDynamoDB.DeleteItem((DeleteItemRequest)request); break; case ServiceCursorDef.CursorType.Insert: request = new PutItemRequest { TableName = query.TableName, Item = values }; mDynamoDB.PutItem((PutItemRequest)request); break; case ServiceCursorDef.CursorType.Update: request = new UpdateItemRequest { TableName = query.TableName, Key = keyCondition, AttributeUpdates = ToAttributeUpdates(keyCondition, values) }; mDynamoDB.UpdateItem((UpdateItemRequest)request); break; default: break; } return(0); }
private static void CreateDynamoQuery(Query query, Dictionary <string, AttributeValue> values, String[] queryFilters, out DynamoDBDataReader dataReader, out AmazonDynamoDBRequest req) { dataReader = null; req = null; if (query is Scan) { req = new ScanRequest { TableName = query.TableName, ProjectionExpression = String.Join(",", query.Projection), }; if (queryFilters.Length > 0) { ((ScanRequest)req).FilterExpression = String.Join(" AND ", queryFilters); ((ScanRequest)req).ExpressionAttributeValues = values; } } else { req = new QueryRequest { TableName = query.TableName, KeyConditionExpression = String.Join(" AND ", query.Filters), ExpressionAttributeValues = values, ProjectionExpression = String.Join(",", query.Projection), }; } }