Example #1
0
        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);
        }
Example #2
0
            /// <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);
            }
Example #3
0
        /// <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);
        }
Example #4
0
        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);
        }