Ejemplo n.º 1
0
        //Modified at 2009-1-9 14:52:34@Scott
        public void Add(DBFilter appenededFilter)
        {
            if (appenededFilter == null || appenededFilter.Count == 0)
            {
                return;
            }

            DBFilter thisModifiedFilter = this.ModifyFilter(this);

            DBFilter modifiedAppenedFilter = this.ModifyFilter(appenededFilter);

            DBFilter resultFilter = new DBFilter();

            foreach (DBCondition condition in thisModifiedFilter)
            {
                resultFilter.Add(condition.Copy());
            }
            foreach (DBCondition condition in modifiedAppenedFilter)
            {
                resultFilter.Add(condition.Copy());
            }

            this.InnerList.Clear();

            foreach (DBCondition condition in resultFilter)
            {
                this.InnerList.Add(condition.Copy());
            }
        }
Ejemplo n.º 2
0
        //Modified at 2009-1-9 14:52:34@Scott
        public static DBFilter AttachedTwoFilterWithOr(DBFilter firstFilter, DBFilter secondFilter)
        {
            if (firstFilter == null)
            {
                firstFilter = new DBFilter();
            }

            if (secondFilter == null)
            {
                secondFilter = new DBFilter();
            }

            DBFilter resultFilter = new DBFilter();

            foreach (DBCondition condition in firstFilter)
            {
                resultFilter.Add(condition.Copy());
            }

            if (resultFilter.Count > 0)
            {
                resultFilter[resultFilter.Count - 1].FollowedOperand = FilterOperands.Or;
            }

            foreach (DBCondition condition in secondFilter)
            {
                resultFilter.Add(condition.Copy());
            }

            return(resultFilter);
        }
Ejemplo n.º 3
0
        private DBFilter ModifyFilter(DBFilter lastFilter)            //2009-11-13 10:08:21@Simon Add this Code
        {
            if (lastFilter.Count <= 0)
            {
                return(lastFilter);
            }

            DBFilter newFilter = new DBFilter();

            if (lastFilter[0].Bracket == Bracket.Start)
            {
                DBCondition condition = new DBCondition();

                condition.ColumnName = string.Empty;

                condition.Bracket = Bracket.NONE;

                condition.FollowedOperand = FilterOperands.Or;

                newFilter.Add(condition);
            }

            foreach (DBCondition condition in lastFilter)
            {
                newFilter.Add(condition.Copy());
            }

            newFilter._PlayAfter = lastFilter._PlayAfter;

            newFilter._Name = lastFilter._Name;

            if (newFilter[lastFilter.Count - 1].Bracket == Bracket.End)
            {
                newFilter[newFilter.Count - 1].FollowedOperand = FilterOperands.Or;

                DBCondition condition = new DBCondition();

                condition.ColumnName = string.Empty;

                condition.Bracket = Bracket.NONE;

                condition.FollowedOperand = FilterOperands.And;

                newFilter.Add(condition);
            }
            else
            {
                newFilter[newFilter.Count - 1].FollowedOperand = FilterOperands.And;
            }

            if (newFilter.Count > 1)
            {
                newFilter[0].Bracket = Bracket.Start;

                newFilter[newFilter.Count - 1].Bracket = Bracket.End;
            }

            return(newFilter);
        }
Ejemplo n.º 4
0
        public DBFilter Copy()
        {
            DBFilter newFilter = new DBFilter();

            foreach (DBCondition condition in this)
            {
                newFilter.Add(condition.Copy());
            }
            newFilter.PlayAfter = this.PlayAfter;

            newFilter._Name = this._Name;

            newFilter.IsCustomFilter = this.IsCustomFilter;

            return(newFilter);
        }