Example #1
0
        public void Operate(Operator newop, IValueProvider provider)
        {
            if (newop == Operator.GreaterThan || newop == Operator.GreaterThanOrEqual || newop == Operator.LessThan || newop == Operator.LessThanOrEqual)
            {
                var deftype = def.AttributeType;

                if (deftype != AttributeType.Date && deftype != AttributeType.Numeric && deftype != AttributeType.Opaque)
                {
                    throw new ApplicationException("Inequality Operation Not Valid For " + deftype + " AttributeType.");
                }
            }

            if (newop != @operator)
            {
                @operator     = newop;
                valueProvider = provider ?? new ValueProvider(new object[0]);
                return;
            }

            if (provider != null && valueProvider.CanMerge && provider.CanMerge)
            {
                valueProvider.Merge(provider);
            }
        }