Example #1
0
        /// <summary>
        /// Works with any value that can be interpreted by the data provider being used.
        /// </summary>
        public override IParameter Build(IFieldPath path, params object[] values)
        {
            if (values == null)
            {
                return(Other.Build(path, null));
            }

            Junction j = (Type == JunctionType.Conjunction ? (Junction) new Conjunction() : new Disjunction());

            foreach (var v in values)
            {
                var p = Other.Build(path, v);
                if (p != null)
                {
                    j.Add(p);
                }
            }

            if (j.Count == 0)
            {
                return(null);
            }
            else if (j.Count == 1)
            {
                return(j[0]);
            }
            return(j);
        }
Example #2
0
        public override IParameter Build(IFieldPath path, params object[] values)
        {
            var other = Other.Build(path, values);

            if (other == null || !(other is ISqlParameter))
            {
                return(null);
            }

            return(new SqlNotParameter((ISqlParameter)other));
        }