/// <summary>
        /// Gets the element conditions.
        /// </summary>
        /// <param name="expressionPlace">The expression place.</param>
        /// <param name="node">The node.</param>
        /// <returns></returns>
        public override ConditionElementCollection GetElementConditions(string expressionPlace, FilterExpressionNode node)
        {
            ConditionElementCollection retVal = new ConditionElementCollection();

            if (node != null)
            {
                ElementDefs elementDef = FindElementDef(node.Key);
                if (elementDef == null)
                {
                    throw new ArgumentException("element  " + node.Key + " not registered");
                }
                //Default Decimal conditions
                var conditions = elementDef.Conditions ?? ConditionDecimalDefs;
                if (elementDef.HasChildren && node.Method != null)
                {
                    ElementDefs methodDef = elementDef.GetMethodDef(node.Method.Key);
                    if (methodDef == null)
                    {
                        throw new ArgumentException("method  " + node.Method.Key + " not registered");
                    }
                    conditions = methodDef.Conditions;
                }
                //Add stored condition elements in Tag  property in definition
                foreach (ElementDefs conditionDef in conditions)
                {
                    retVal.Add(conditionDef.Tag as ConditionElement);
                }
            }
            return(retVal);
        }
        /// <summary>
        /// Gets the element conditions.
        /// </summary>
        /// <param name="field">The field.</param>
        /// <returns></returns>
        protected virtual ConditionElementCollection GetElementConditions(MetaField field)
        {
            ConditionElementCollection retVal = new ConditionElementCollection();

            switch (field.DataType)
            {
            case MetaDataType.ShortString:
                retVal.Add(new ConditionElement(ConditionElementType.Text, "Equals", "Equals", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "Not.Equals", "Does not equal", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "Contains", "Contains", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "Not.Contains", "Does not contain", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "StartsWith", "Begins with", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "EndsWith", "Ends with", string.Empty));
                break;

            case MetaDataType.LongString:
            case MetaDataType.LongHtmlString:
            case MetaDataType.NText:
            case MetaDataType.Text:
                retVal.Add(new ConditionElement(ConditionElementType.Text, "Contains", "Contains", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "Not.Contains", "Does not contain", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "StartsWith", "Begins with", string.Empty));
                retVal.Add(new ConditionElement(ConditionElementType.Text, "EndsWith", "Ends with", string.Empty));
                break;
            }

            return(retVal);
        }
Пример #3
0
        /// <summary>
        /// Gets the element conditions.
        /// </summary>
        /// <param name="expressionPlace">The expression place.</param>
        /// <param name="node">The node.</param>
        /// <returns></returns>
        public override ConditionElementCollection GetElementConditions(string expressionPlace, FilterExpressionNode node)
        {
            ConditionElementCollection retVal = new ConditionElementCollection();

            ElementDefs elementDef = FindElementDef(node.Key);

            if (elementDef == null)
            {
                throw new ArgumentException("element  " + node.Key + " not registered");
            }

            foreach (ElementDefs condDef in elementDef.Conditions)
            {
                retVal.Add(condDef.Tag as ConditionElement);
            }

            return(retVal);
        }