internal static Dictionary <string, AttributeValue> ConvertToAttributeValues( Dictionary <string, DynamoDBEntry> valueMap, Table table) { var convertedValues = new Dictionary <string, AttributeValue>(); if (valueMap != null) { foreach (var kvp in valueMap) { var attributeName = kvp.Key; var entry = kvp.Value; if (entry == null) { convertedValues[attributeName] = new AttributeValue { NULL = true } } ; else { if (table.StoreAsEpoch.Contains(attributeName)) { entry = Document.DateTimeToEpochSeconds(entry, attributeName); } var attributeConversionConfig = new DynamoDBEntry.AttributeConversionConfig(table.Conversion, table.IsEmptyStringValueEnabled); convertedValues[attributeName] = entry.ConvertToAttributeValue(attributeConversionConfig); } } } return(convertedValues); }
/// <summary> /// Converts the FilterCondition to the Amazon.DynamoDBv2.Model.Condition object. /// </summary> /// <param name="conversion"></param> /// <param name="shouldConvertToEpochSeconds"></param> /// <param name="attributeName"></param> /// <param name="isEmptyStringValueEnabled"></param> /// <returns></returns> public Condition ToCondition(DynamoDBEntryConversion conversion, bool shouldConvertToEpochSeconds, string attributeName, bool isEmptyStringValueEnabled) { var attributeValues = AttributeValues; if (attributeValues == null) { attributeValues = new List <AttributeValue>(); for (int i = 0; i < DynamoDBEntries.Count; i++) { var entry = DynamoDBEntries[i]; if (shouldConvertToEpochSeconds) { entry = Document.DateTimeToEpochSeconds(entry, attributeName); } var attributeConversionConfig = new DynamoDBEntry.AttributeConversionConfig(conversion, isEmptyStringValueEnabled); var attributeValue = entry.ConvertToAttributeValue(attributeConversionConfig); attributeValues.Add(attributeValue); } } var condition = new Condition { ComparisonOperator = ComparisonOperator, AttributeValueList = attributeValues }; return(condition); }
/// <summary> /// Creates a list of AttributeValues from a list of DynamoDBEntry items /// </summary> /// <param name="conversion"></param> /// <param name="isEmptyStringValueEnabled"></param> /// <param name="values"></param> /// <returns></returns> protected static List <AttributeValue> ConvertToAttributeValues(DynamoDBEntryConversion conversion, bool isEmptyStringValueEnabled, params DynamoDBEntry[] values) { List <AttributeValue> attributes = new List <AttributeValue>(); foreach (DynamoDBEntry value in values) { var attributeConversionConfig = new DynamoDBEntry.AttributeConversionConfig(conversion, isEmptyStringValueEnabled); AttributeValue nativeValue = value.ConvertToAttributeValue(attributeConversionConfig); if (nativeValue != null) { attributes.Add(nativeValue); } } return(attributes); }
internal static ExpectedAttributeValue ToExpectedAttributeValue(bool exists, IEnumerable <DynamoDBEntry> values, ScanOperator comparison, DynamoDBEntryConversion conversion, bool isEmptyStringValueEnabled) { var eav = new ExpectedAttributeValue(); if (exists) { eav.ComparisonOperator = EnumMapper.Convert(comparison); foreach (var val in values) { var attributeConversionConfig = new DynamoDBEntry.AttributeConversionConfig(conversion, isEmptyStringValueEnabled); eav.AttributeValueList.Add(val.ConvertToAttributeValue(attributeConversionConfig)); } } else { eav.Exists = exists; } return(eav); }