Amazon.DynamoDBv2.DocumentModel.QueryFilter.AddCondition C# (CSharp) Method

AddCondition() public method

Adds a condition for a specified attribute that consists of an operator and any number of values
public AddCondition ( string attributeName, QueryOperator op ) : void
attributeName string Target attribute name
op QueryOperator Comparison operator
return void
        public void AddCondition(string attributeName, QueryOperator op, params DynamoDBEntry[] values)
        {
            AddCondition(attributeName, new Condition
            {
                ComparisonOperator = EnumToStringMapper.Convert(op),
                AttributeValueList = ConvertToAttributeValues(values)
            });
        }
    }

Same methods

QueryFilter::AddCondition ( string attributeName, QueryOperator op, List values ) : void

Usage Example

コード例 #1
1
        private static bool TryMatchFieldWithCondition(string fieldName, QueryFilter resultFilter, SearchConditions conditions)
        {
            List<SearchCondition> conditionList;
            if (!conditions.TryGetValue(fieldName, out conditionList))
            {
                return false;
            }

            switch (conditionList.Count)
            {
                case 2: // checking for the between operator
                {
                    var lessThanOrEqualCondition = conditionList.SingleOrDefault(c => c.Operator == ScanOperator.LessThanOrEqual);
                    var greaterThanOrEqualCondition = conditionList.SingleOrDefault(c => c.Operator == ScanOperator.GreaterThanOrEqual);

                    if ((lessThanOrEqualCondition == null) || (greaterThanOrEqualCondition == null))
                    {
                        throw new InvalidOperationException("Multiple conditions for the same field are only supported for the BETWEEN case");
                    }

                    if
                    (
                        (lessThanOrEqualCondition.Values.Length != 1)
                        ||
                        (greaterThanOrEqualCondition.Values.Length != 1)
                    )
                    {
                        return false;
                    }

                    resultFilter.AddCondition(fieldName, QueryOperator.Between, greaterThanOrEqualCondition.Values[0], lessThanOrEqualCondition.Values[0]);
                }
                break;
                case 1:
                {
                    SearchCondition condition = conditionList[0];

                    // here we need to convert operators, as AWS SDK's default conversion is buggy
                    QueryOperator queryOperator;
                    if 
                    (
                        (!TryConvertScanOperatorToQueryOperator(condition.Operator, out queryOperator))
                        ||
                        (condition.Values.Length != 1)
                    )
                    {
                        return false;
                    }

                    resultFilter.AddCondition(fieldName, queryOperator, condition.Values[0]);
                }
                break;
                default:
                    throw new InvalidOperationException(string.Format("Too many conditions for field {0}", fieldName));
            }

            // removing the matched condition
            conditions.Remove(fieldName);

            return true;
        }
All Usage Examples Of Amazon.DynamoDBv2.DocumentModel.QueryFilter::AddCondition