SilverlightMappingToolBasic.StringFilter.HasMatch C# (CSharp) Method

HasMatch() public method

public HasMatch ( INodeProxy node ) : bool
node INodeProxy
return bool
        public override bool HasMatch(INodeProxy node)
        {
            bool result = false;
            string metaValue;
            if (!ContainsKey(node))
            {
                if (string.IsNullOrEmpty(Value))
                {
                    //if the metadata doesn't exist and the compare value is null or string.Empty
                    //set the values to both be string.Empty and allow the operator to work it out
                    metaValue = string.Empty;
                    Value = string.Empty;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                metaValue = node.GetNodeMetadata(Key).MetadataValue;
            }

            switch (Operator)
            {
                case MetadataFilterOperator.EQUAL:
                    if (metaValue == Value)
                    {
                        result = true;
                    }
                    break;
                case MetadataFilterOperator.NOT_EQUAL:
                    if (metaValue != Value)
                    {
                        result = true;
                    }
                    break;
                case MetadataFilterOperator.GREATER_THAN:
                    if (metaValue.CompareTo(Value) > 0)
                    {
                        result = true;
                    }
                    break;
                case MetadataFilterOperator.GREATER_THAN_OR_EQUAL:
                    if (metaValue.CompareTo(Value) == 0)
                    {
                        result = true;
                    }
                    break;
                case MetadataFilterOperator.LESS_THAN:
                    if (metaValue.CompareTo(Value) < 0)
                    {
                        result = true;
                    }
                    break;
                case MetadataFilterOperator.LESS_THAN_OR_EQUAL:
                    if (metaValue.CompareTo(Value) == 0)
                    {
                        result = true;
                    }
                    break;
                case MetadataFilterOperator.CONTAINS:
                    if (metaValue.IndexOf(Value, StringComparison.CurrentCultureIgnoreCase) >= 0)
                    {
                        result = true;
                    }
                    break;
                default:
                    result = false;
                    break;
            }
            return result;
        }
    }
StringFilter