Example #1
0
        /// <summary>
        /// Clones this instance.
        /// </summary>
        /// <returns>Returns the cloned object.</returns>
        public override object Clone()
        {
            CellValueCondition condition = base.Clone() as CellValueCondition;

            condition.compareType          = this.compareType;
            condition.treatNullValueAsZero = this.treatNullValueAsZero;
            return(condition);
        }
Example #2
0
        /// <summary>
        /// Creates conditions for the rule.
        /// </summary>
        /// <returns>
        /// The  condition.
        /// </returns>
        protected override ConditionBase CreateCondition()
        {
            GeneralCompareType equalsTo;
            CellValueCondition condition;
            string             formula = IsFormula(this.value1) ? (this.value1 as string).TrimStart(new char[] { '=' }) : null;

            IsFormula(this.value1);
            string str2 = IsFormula(this.value2) ? (this.value2 as string).TrimStart(new char[] { '=' }) : null;

            IsFormula(this.value2);
            switch (this.op)
            {
            case ComparisonOperator.Between:
            {
                CellValueCondition condition4 = new CellValueCondition(GeneralCompareType.GreaterThanOrEqualsTo, this.value1, formula)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase      base2      = condition4;
                CellValueCondition condition5 = new CellValueCondition(GeneralCompareType.LessThanOrEqualsTo, this.value2, str2)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase      base3      = condition5;
                CellValueCondition condition6 = new CellValueCondition(GeneralCompareType.LessThanOrEqualsTo, this.value1, formula)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase      base4      = condition6;
                CellValueCondition condition7 = new CellValueCondition(GeneralCompareType.GreaterThanOrEqualsTo, this.value2, str2)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase     base5      = condition7;
                RelationCondition condition2 = new RelationCondition(RelationCompareType.And, base2, base3);
                return(new RelationCondition(RelationCompareType.Or, condition2, new RelationCondition(RelationCompareType.And, base4, base5)));
            }

            case ComparisonOperator.NotBetween:
            {
                CellValueCondition condition10 = new CellValueCondition(GeneralCompareType.LessThan, this.value1, formula)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase      base6       = condition10;
                CellValueCondition condition11 = new CellValueCondition(GeneralCompareType.GreaterThan, this.value2, str2)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase      base7       = condition11;
                CellValueCondition condition12 = new CellValueCondition(GeneralCompareType.GreaterThan, this.value1, formula)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase      base8       = condition12;
                CellValueCondition condition13 = new CellValueCondition(GeneralCompareType.LessThan, this.value2, str2)
                {
                    TreatNullValueAsZero = true
                };
                ConditionBase     base9      = condition13;
                RelationCondition condition8 = new RelationCondition(RelationCompareType.Or, base6, base7);
                return(new RelationCondition(RelationCompareType.And, condition8, new RelationCondition(RelationCompareType.Or, base8, base9)));
            }

            case ComparisonOperator.EqualTo:
            case ComparisonOperator.NotEqualTo:
            case ComparisonOperator.GreaterThan:
            case ComparisonOperator.LessThan:
            case ComparisonOperator.GreaterThanOrEqualTo:
            case ComparisonOperator.LessThanOrEqualTo:
                equalsTo = GeneralCompareType.EqualsTo;
                switch (this.op)
                {
                case ComparisonOperator.EqualTo:
                    equalsTo = GeneralCompareType.EqualsTo;
                    goto Label_00F3;

                case ComparisonOperator.NotEqualTo:
                    equalsTo = GeneralCompareType.NotEqualsTo;
                    goto Label_00F3;

                case ComparisonOperator.GreaterThan:
                    equalsTo = GeneralCompareType.GreaterThan;
                    goto Label_00F3;

                case ComparisonOperator.LessThan:
                    equalsTo = GeneralCompareType.LessThan;
                    goto Label_00F3;

                case ComparisonOperator.GreaterThanOrEqualTo:
                    equalsTo = GeneralCompareType.GreaterThanOrEqualsTo;
                    goto Label_00F3;

                case ComparisonOperator.LessThanOrEqualTo:
                    equalsTo = GeneralCompareType.LessThanOrEqualsTo;
                    goto Label_00F3;
                }
                break;

            default:
                return(null);
            }
Label_00F3:
            condition = new CellValueCondition(equalsTo, this.value1, formula);
            condition.TreatNullValueAsZero = true;
            return(condition);
        }