protected override String CreateContainsExpression(ContainsFilter filter,
                                                           Boolean not)
        {
            String[] attrNames = GetLdapNamesForAttribute(filter.GetAttribute());
            if (attrNames == null)
            {
                return(null);
            }

            StringBuilder builder = new StringBuilder();

            if (not)
            {
                builder.Append("(!");
            }
            if (attrNames.Length == 1)
            {
                builder.Append('(');
                builder.Append(attrNames[0]);
                builder.Append("=*");
                int len = builder.Length;
                GetLdapFilterValue(builder, attrNames[0], filter.GetValue());
                // Build (attr=*) rather than (attr=**) for zero-length values.
                if (builder.Length != len)
                {
                    builder.Append('*');
                }
                builder.Append(')');
            }
            else
            {
                builder.Append("(|");
                foreach (String attrName in attrNames)
                {
                    builder.Append('(');
                    builder.Append(attrName);
                    builder.Append("=*");
                    int len = builder.Length;
                    GetLdapFilterValue(builder, attrName, filter.GetValue());
                    // Build (attr=*) rather than (attr=**) for zero-length values.
                    if (builder.Length != len)
                    {
                        builder.Append('*');
                    }
                    builder.Append(')');
                }
                builder.Append(')');
            }
            if (not)
            {
                builder.Append(')');
            }
            return(builder.ToString());
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="p"></param>
        /// <param name="filter"></param>
        /// <returns></returns>
        public string VisitContainsFilter(Hashtable p, ContainsFilter filter)
        {
            var name  = filter.GetName();
            var name2 = name as String;

            if (p.ContainsKey(name))
            {
                name2 = p[name] as String;
            }
            return(string.Format("{0} -like \"{1}{2}{3}\"", name2, "*", filter.GetValue(), "*"));
        }
Example #3
0
        protected override String CreateContainsExpression(ContainsFilter filter, bool not)
        {
            String rv = "( CONTAINS " + filter.GetName() + " " + filter.GetValue() + " )";

            return(Not(rv, not));
        }
Example #4
0
 public Dictionary <string, object> VisitContainsFilter(Hashtable p, ContainsFilter filter)
 {
     return(CreateMap("CONTAINS", filter.GetName(), filter.GetValue()));
 }