Beispiel #1
0
        public override bool ValidateAttributeValue(IPresetItem argumentValue)
        {
            if (argumentValue?.DisplayValue == null)
            {
                return(true);
            }

            var valid = double.TryParse(argumentValue.DisplayValue, NumberStyles.Any, CultureInfo.InvariantCulture, out var value);

            return(valid && value <= long.MaxValue && value >= long.MinValue);
        }
Beispiel #2
0
 public override bool ValidateAttributeValue(IPresetItem argumentValue)
 {
     return(base.ValidateAttributeValue(argumentValue) && !string.IsNullOrEmpty(argumentValue?.DisplayValue));
 }
Beispiel #3
0
        private int GetPresetArgumentLength(string expressionString, ISearchExpressionContext context, out IPresetItem validItem)
        {
            var presetItems          = GetPresetItems(context);
            var presetArgumentLength = -1;

            validItem = null;

            foreach (var item in presetItems)
            {
                var itemValue = context.IsInvariantCulture ? item.Id : item.DisplayValue;
                if (itemValue == null)
                {
                    continue;
                }

                if (expressionString.StartsWith(itemValue, StringComparison.InvariantCultureIgnoreCase) && itemValue.Length > presetArgumentLength)
                {
                    if (expressionString.Length == itemValue.Length)
                    {
                        presetArgumentLength = itemValue.Length;
                        validItem            = item;
                    }
                    else
                    {
                        foreach (var validTail in ValidNexts.OfType <IKeywordToken>())
                        {
                            var keywordAlias = context.IsInvariantCulture
                                ? validTail.SerializationAlias
                                : validTail.Alias;

                            var validTailIndex = expressionString.IndexOf(keywordAlias, itemValue.Length, StringComparison.InvariantCultureIgnoreCase);
                            if (validTailIndex == itemValue.Length)
                            {
                                presetArgumentLength = itemValue.Length;
                                validItem            = item;
                                break;
                            }
                        }

                        if (presetArgumentLength == -1)
                        {
                            presetArgumentLength = itemValue.Length;
                            validItem            = item;
                        }
                    }
                }
            }

            return(presetArgumentLength);
        }
Beispiel #4
0
        protected virtual bool GetArgumentValue(string expressionString, ISearchExpressionContext context, out IPresetItem value)
        {
            IPresetItem validItem;
            var         presetArgumentLength = GetPresetArgumentLength(expressionString, context, out validItem);

            if (presetArgumentLength > 0)
            {
                value = validItem;
                return(true);
            }

            value = new PresetItem(null, expressionString.Substring(0, GetArgumentLegth(expressionString, AllowCustomValues)));

            return(AllowCustomValues);
        }
Beispiel #5
0
 protected internal void SetValue(IPresetItem value)
 {
     _id    = value.Id;
     _value = value.DisplayValue;
 }
Beispiel #6
0
 public virtual bool ValidateAttributeValue(IPresetItem argumentValue)
 {
     return(true);
 }