예제 #1
0
        public void CopyAsNew()
        {
            var Qb = Db.LoadQueryById(SelectedId).Clone(DbUtil.Db);

            if (!Qb.IsGroup)
            {
                var g = new QueryBuilderClause();
                g.SetQueryType(QueryType.Group);
                g.SetComparisonType(CompareType.AllTrue);
                Qb.Parent = g;
                Qb        = g;
            }
            Db.SubmitChanges();
            QueryId = Qb.QueryId;
        }
예제 #2
0
        public void InsertGroupAbove()
        {
            var cc = Db.LoadQueryById(SelectedId);
            var g  = new QueryBuilderClause();

            g.SetQueryType(QueryType.Group);
            g.SetComparisonType(CompareType.AllTrue);
            g.ClauseOrder = cc.ClauseOrder;
            if (cc.IsFirst)
            {
                cc.Parent = g;
            }
            else
            {
                var currParent = cc.Parent;
                // find all clauses from cc down at same level
                var q = from c in cc.Parent.Clauses
                        orderby c.ClauseOrder
                        where c.ClauseOrder >= cc.ClauseOrder
                        select c;
                foreach (var c in q)
                {
                    c.Parent = g;   // change to new parent
                }
                g.Parent = currParent;
            }
            if (cc.SavedBy.HasValue())
            {
                g.SavedBy      = Util.UserName;
                g.Description  = cc.Description;
                g.CreatedOn    = cc.CreatedOn;
                cc.IsPublic    = false;
                cc.Description = null;
                cc.SavedBy     = null;
            }
            Db.SubmitChanges();
            if (g.IsFirst)
            {
                Qb      = g;
                QueryId = g.QueryId;
            }
        }