public void AddNewCondition(TrFilter trFilter)
 {
     this._dtcondition.Rows.Clear();
     foreach (TrFilterCondition trc in trFilter.TrFilterConditions)
     {
         DataRow row = this._dtcondition.NewRow();
         row["Relation"] = trc.Relation;
         row["Filter_Id"] = trc.TrFilter.Id.ToString();
         row["Condition_Name"] =trc.ConditionName;
         row["Field_ID"] = trc.FieldId;
         row["Field_Type"] = trc.FieldType;
         row["ID"] = trc.Id;
         row["TABLE_NAME"] = trc.TABLENAME;
         row["Compare_Value"] = trc.CompareValue;
         row["Operation"] = trc.Operation;
         this._dtcondition.Rows.Add(row);
     }
 }
        public void SaveFilterX(TyQuery searchX, ref TrFilter filterX, string filterName)
        {
            int num = 0;

            if (searchX == null)
            {
                throw new CoreException("TyQuery cannot be null");
            }
            if (StringHelper.IsNull(filterName))
            {
                throw new CoreException("Filter name cannot be null");
            }
            if (this._dtcondition.Rows.Count == 0)
            {
                throw new CoreException("Condition row count cannot be 0");
            }
            StringBuilder builder = new StringBuilder(0x3e8);
            string newGuid = string.Empty;
            if (filterX == null)
            {
                newGuid = this.GetNewGuid();
                string str2 = searchX.Id.ToString();
                filterX = new TrFilter();
                filterX.Id = newGuid;
                filterX.Name = filterName;
                filterX.TyQuery = searchX;
                searchX.TrFilters.Add(filterX);
                IDA0 da = DAOFactory.GetInstanceByNameSpace("SkyMap.Net.Criteria");
                da.Put(filterX, DAOType.SAVE);
                da.Execute();
                da.Close();
                //foreach (TyQuery tyquery in QueryClientHelper.TyQuerys)
                //{
                //    if (tyquery == filterX.TyQuery)
                //    {
                //        tyquery.TrFilters.Add(filterX);
                //        break;
                //    }
                //}
            }
            else
            {
                if (filterName != filterX.Name.ToString())
                {
                    newGuid = filterX.Id.ToString();
                    filterX.Name = filterName;
                    IDA0 da = DAOFactory.GetInstanceByNameSpace("SkyMap.Net.Criteria");
                    da.Put(filterX, DAOType.UPDATE);
                    da.Execute();
                    da.Close();
                    foreach (TyQuery tyquery in QueryClientHelper.TyQuerys)
                    {
                        if (tyquery == filterX.TyQuery)
                        {
                            foreach (TrFilter trfilter in tyquery.TrFilters)
                            {
                                if (trfilter.Id == filterX.Id)
                                {
                                    trfilter.Name = filterX.Name;
                                    break;
                                }
                            }
                            break;
                        }
                    }
                }
                this.DeleteFilterXConditions(filterX);
            }

            foreach (DataRow row in this._dtcondition.Rows)
            {
                TrFilterCondition trc = new TrFilterCondition();
                trc.TrFilter = filterX;
                trc.Relation = row["Relation"].ToString();
                trc.ConditionName = row["Condition_Name"].ToString();
                trc.FieldId = row["Field_ID"].ToString();
                trc.FieldType = row["Field_Type"].ToString();
                trc.Id = filterX.Id + num.ToString();
                trc.TABLENAME = row["TABLE_NAME"].ToString();
                trc.CompareValue = row["Compare_Value"].ToString();
                trc.Operation = row["Operation"].ToString();
                filterX.TrFilterConditions.Add(trc);
                num++;
            }

            if (this._dtcondition.Rows.Count > 0)
            {
                IDA0 dao = DAOFactory.GetInstanceByNameSpace("SkyMap.Net.Criteria");
                foreach (TrFilterCondition tr in filterX.TrFilterConditions)
                {
                    dao.Put(tr, DAOType.SAVE);
                }
                dao.Execute();
                dao.Close();

                //foreach (TyQuery tyquery in QueryClientHelper.TyQuerys)
                //{
                //    if (tyquery == filterX.TyQuery)
                //    {
                //        foreach (TrFilter trfilter in tyquery.TrFilters)
                //        {
                //            if (trfilter == filterX)
                //            {
                //                foreach (TrFilterCondition tmp in filterX.TrFilterConditions)
                //                {
                //                    trfilter.TrFilterConditions.Add((tmp as DomainObject).Clone<TrFilterCondition>());
                //                }
                //                break;
                //            }
                //        }
                //        break;
                //    }
                //}
               // QueryHelper.ExecuteSqlScalar("SkyMap.Net.Criteria", builder.ToString());
            }
        }
        private void DeleteFilterXConditions(TrFilter filterX)
        {
            IDA0 da = DAOFactory.GetInstanceByNameSpace("SkyMap.Net.Criteria");
            foreach (TrFilterCondition tr in filterX.TrFilterConditions)
            {
                da.Put(tr, DAOType.DELETE);
            }
            da.Execute();
            da.Close();
            IList<TrFilterCondition> lcon = filterX.TrFilterConditions;
            lcon.Clear();

            //foreach (TyQuery tyquery in QueryClientHelper.TyQuerys)
            //{
            //    if (tyquery == filterX.TyQuery)
            //    {
            //        foreach (TrFilter trfilter in tyquery.TrFilters)
            //        {
            //            if (trfilter == filterX)
            //            {
            //                trfilter.TrFilterConditions.Clear();
            //                break;
            //            }
            //        }
            //        break;
            //    }
            //}
        }
 public void DeleteFilterX(TrFilter filter)
 {
     IDA0 dao = DAOFactory.GetInstanceByNameSpace("SkyMap.Net.Criteria");
     dao.Put(filter, DAOType.DELETE);
     dao.Execute();
     dao.Close();
     foreach (TyQuery tyquery in QueryClientHelper.TyQuerys)
     {
         if (tyquery == filter.TyQuery)
         {
             foreach (TrFilter trfilter in tyquery.TrFilters)
             {
                 if (trfilter == filter)
                 {
                     tyquery.TrFilters.Remove(filter);
                     return;
                 }
             }
         }
     }
 }