Example #1
0
        public JsonObject ToJson()
        {
            var json = new JsonObject {
                { "TableName", TableName },
                { "Key", Key.ToJson() }
            };

            var updateExpression = new UpdateExpression(Changes, ExpressionAttributeNames, ExpressionAttributeValues);

            if (ConditionExpression != null)
            {
                json.Add("ConditionExpression", ConditionExpression);
            }

            if (ExpressionAttributeNames != null && ExpressionAttributeNames.Keys.Count > 0)
            {
                json.Add("ExpressionAttributeNames", ExpressionAttributeNames);
            }

            if (ExpressionAttributeValues.Count > 0)
            {
                json.Add("ExpressionAttributeValues", ExpressionAttributeValues.ToJson());
            }

            json.Add("UpdateExpression", updateExpression.ToString());

            if (ReturnValues != null)
            {
                json.Add("ReturnValues", ReturnValues.ToString() !);
            }

            return(json);
        }
Example #2
0
        public JsonObject ToJson()
        {
            var json = new JsonObject {
                { "TableName", TableName },
                { "Item", Item.ToJson() }
            };

            if (ConditionExpression != null)
            {
                json.Add("ConditionExpression", ConditionExpression);
            }

            if (ExpressionAttributeNames != null && ExpressionAttributeNames.Keys.Count > 0)
            {
                json.Add("ExpressionAttributeNames", ExpressionAttributeNames);
            }

            if (ExpressionAttributeValues != null && ExpressionAttributeValues.Count > 0)
            {
                json.Add("ExpressionAttributeValues", ExpressionAttributeValues.ToJson());
            }

            if (ReturnValues != ReturnValues.NONE)
            {
                json.Add("ReturnValues", ReturnValues.Canonicalize());
            }

            return(json);
        }
Example #3
0
        private void SetDuplicateCheckExpression(PutItemRequest request, Dictionary <string, AttributeValue> item)
        {
            ExpressionAttributeNames.Clear();
            ExpressionAttributeValues.Clear();
            AttributeGenerator.ResetIndex();

            var hashKeyAttrValue = item.FirstOrDefault(x => x.Key == _hashKeyName).Value;

            if (hashKeyAttrValue == null)
            {
                throw new InvalidOperationException($"Item does not contains Hash key: {_hashKeyName}");
            }

            var sb = new StringBuilder();

            var hashKeyName  = GetAttributeName(_hashKeyName);
            var hashKeyValue = GetAttributeValue(hashKeyAttrValue);

            sb.Append($"{hashKeyName} <> {hashKeyValue}");

            if (!string.IsNullOrEmpty(_sortKeyName))
            {
                var sortKeyAttrValue = item.FirstOrDefault(x => x.Key == _sortKeyName).Value;

                var sortKeyName  = GetAttributeName(_sortKeyName);
                var sortKeyValue = GetAttributeValue(sortKeyAttrValue);

                sb.Append($" AND {sortKeyName} <> {sortKeyValue}");
            }

            request.ExpressionAttributeNames  = ExpressionAttributeNames;
            request.ExpressionAttributeValues = ExpressionAttributeValues;
            request.ConditionExpression       = sb.ToString();
        }
Example #4
0
        public JsonObject ToJson()
        {
            var json = new JsonObject {
                { "TableName", TableName }
            };

            if (Limit != 0)
            {
                json.Add("Limit", Limit);
            }
            if (Select != SelectEnum.Unknown)
            {
                json.Add("Select", Select.ToString());
            }
            if (Segment != null)
            {
                json.Add("Segment", Segment.Value);
            }
            if (TotalSegments != null)
            {
                json.Add("TotalSegments", TotalSegments.Value);
            }
            if (ExclusiveStartKey != null)
            {
                json.Add("ExclusiveStartKey", ExclusiveStartKey.ToJson());
            }

            if (ExpressionAttributeNames != null)
            {
                json.Add("ExpressionAttributeNames", ExpressionAttributeNames);
            }
            if (ExpressionAttributeValues != null)
            {
                json.Add("ExpressionAttributeValues", ExpressionAttributeValues.ToJson());
            }

            if (FilterExpression != null)
            {
                json.Add("FilterExpression", FilterExpression);
            }

            if (ProjectionExpression != null)
            {
                json.Add("ProjectionExpression", ProjectionExpression);
            }

            return(json);
        }
Example #5
0
        protected override ScanRequest GetRequest()
        {
            var request = new ScanRequest()
            {
                TableName = TableName,
                ExpressionAttributeNames  = ExpressionAttributeNames.ToDictionary(kv => kv.Key, kv => kv.Value),
                ExpressionAttributeValues = ExpressionAttributeValues.ToDictionary(kv => kv.Key, kv => kv.Value),
                FilterExpression          = string.IsNullOrWhiteSpace(FilterExpression) ? null : FilterExpression.Trim(),
                ExclusiveStartKey         = ExclusiveStartKey,
            };

            if (!string.IsNullOrEmpty(IndexName))
            {
                request.IndexName = IndexName;
            }

            return(request);
        }
Example #6
0
        protected override QueryRequest GetRequest()
        {
            var request = new QueryRequest
            {
                TableName = TableName,
                ExpressionAttributeNames  = ExpressionAttributeNames.ToDictionary(kv => kv.Key, kv => kv.Value),
                ExpressionAttributeValues = ExpressionAttributeValues.ToDictionary(kv => kv.Key, kv => kv.Value),
                ScanIndexForward          = !QueryInfo.OrderDescend,
                FilterExpression          = string.IsNullOrWhiteSpace(FilterExpression) ? null : FilterExpression.Trim(),
                KeyConditionExpression    = HashKey + (SortKey != null ? " AND " + SortKey : string.Empty),
                ExclusiveStartKey         = ExclusiveStartKey,
            };

            if (!string.IsNullOrEmpty(IndexName))
            {
                request.IndexName = IndexName;
            }

            return(request);
        }
Example #7
0
        public JsonObject ToJson()
        {
            var json = new JsonObject {
                { "TableName", TableName }
            };

            if (KeyConditionExpression != null)
            {
                json.Add("KeyConditionExpression", KeyConditionExpression);
            }

            if (ExpressionAttributeNames != null && ExpressionAttributeNames.Keys.Count > 0)
            {
                json.Add("ExpressionAttributeNames", ExpressionAttributeNames);
            }

            if (ExpressionAttributeValues != null && ExpressionAttributeValues.Count > 0)
            {
                json.Add("ExpressionAttributeValues", ExpressionAttributeValues.ToJson());
            }

            if (FilterExpression != null)
            {
                json.Add("FilterExpression", FilterExpression);
            }

            if (Select != SelectEnum.Unknown)
            {
                json.Add("Select", Select.ToString());
            }

            if (ProjectionExpression != null)
            {
                json.Add("ProjectionExpression", ProjectionExpression);
            }

            if (Limit != 0)
            {
                json.Add("Limit", Limit);
            }
            if (IndexName != null)
            {
                json.Add("IndexName", IndexName);
            }
            if (ConsistentRead)
            {
                json.Add("ConsistentRead", ConsistentRead);
            }
            if (ExclusiveStartKey != null)
            {
                json.Add("ExclusiveStartKey", ExclusiveStartKey.ToJson());
            }
            if (!ScanIndexForward)
            {
                json.Add("ScanIndexForward", ScanIndexForward);                                                  // Default = true
            }
            if (ReturnConsumedCapacity)
            {
                json.Add("ReturnConsumedCapacity", "TOTAL");
            }

            return(json);
        }