public void Paste() { var clip = HttpContext.Current.Session["QueryClipboard"] as string; if (clip == null) { return; } var newclause = Condition.Import(clip); foreach (var c in newclause.AllConditions) { Selected.AllConditions[c.Key] = c.Value; } ; newclause.AllConditions = Selected.AllConditions; if (Selected.IsGroup) { newclause.Order = Selected.MaxClauseOrder() + 2; newclause.ParentId = Selected.Id; } else { newclause.Order = Selected.Order + 1; newclause.ParentId = Selected.Parent.Id; Selected.Parent.ReorderClauses(); } TopClause.Save(DbUtil.Db, increment: true); }
public void TagAll(Tag tag = null) { DbUtil.Db.SetNoLock(); var q = DbUtil.Db.People.Where(TopClause.Predicate(DbUtil.Db)); if (TopClause.PlusParentsOf) { q = DbUtil.Db.PersonQueryPlusParents(q); } else if (TopClause.ParentsOf) { q = DbUtil.Db.PersonQueryParents(q); } if (TopClause.FirstPersonSameEmail) { q = DbUtil.Db.PersonQueryFirstPersonSameEmail(q); } if (tag != null) { DbUtil.Db.TagAll(q, tag); } else { DbUtil.Db.TagAll(q); } }
public Guid AddConditionToGroup() { var nc = Selected.AddNewClause(); TopClause.Save(DbUtil.Db); return(nc.Id); }
public void BuildingClauseWhenTopIsNotDefined() { var data = new Dictionary<string, string>(); var result = TopClause.Build(new ODataOptions<Model>(data)); result.Should().BeEmpty(); }
public Guid AddGroupToGroup() { var g = Selected.AddNewGroupClause(); var nc = g.AddNewClause(); TopClause.Save(DbUtil.Db); return(nc.Id); }
public void BuildClauseWhenOnlyTopIsDefined() { var data = new Dictionary<string, string> { ["$top"] = "20" }; var result = TopClause.Build(new ODataOptions<Model>(data)); result.Should().Be("TOP(20)"); }
public void BuildingClauseWhenTopAndSkipAreDefined() { var data = new Dictionary<string, string> { ["$top"] = "20", ["$skip"] = "5" }; var result = TopClause.Build(new ODataOptions<Model>(data)); result.Should().BeEmpty(); }
public void UnTagAll() { Db.SetNoLock(); var q = Db.People.Where(TopClause.Predicate(Db)); if (TopClause.ParentsOf) { q = Db.PersonQueryParents(q); } Db.UnTagAll(q); }
/// <summary> /// Initializes a new instance of the <see cref="SelectQueryBuilder" /> class. /// </summary> public SelectQueryBuilder() { GroupByColumns = new List <string>(); HavingClauses = new List <WhereClause>(); JoinClauses = new List <JoinClause>(); OrderByStatement = new List <OrderByClause>(); SelectedColumns = new List <string>(); SelectedTables = new List <string>(); TopClause = new TopClause(100, TopUnit.Percent); WhereClauses = new List <WhereClause>(); }
public void MakeTopGroup() { Selected.Description = TopClause.Description; var conditions = Selected.Conditions.ToList(); foreach (var c in conditions) { c.ParentId = TopClause.Id; } Selected.Id = TopClause.Id; Selected.ParentId = null; TopClause = Selected; TopClause.Save(DbUtil.Db); }
public void InsertGroupAbove() { var g = new Condition { Id = Guid.NewGuid(), ConditionName = QueryType.Group.ToString(), Comparison = CompareType.AnyTrue.ToString(), AllConditions = Selected.AllConditions }; if (Selected.IsFirst) { Selected.ParentId = g.Id; g.ParentId = null; } else { var list = Selected.Parent.Conditions.Where(cc => cc.Order >= Selected.Order).ToList(); g.ParentId = Selected.ParentId; foreach (var c in list) { c.ParentId = g.Id; } g.Order = Selected.MaxClauseOrder(); } Selected.AllConditions.Add(g.Id, g); if (g.IsFirst) { // g will now becojme the new TopClause g.Description = TopClause.Description; // swap TopClauseId with the new GroupId so the saved query will have the same id var tcid = TopClause.Id; var gid = g.Id; var conditions = TopClause.Conditions.ToList(); TopClause.Id = gid; foreach (var c in conditions) { c.ParentId = gid; } g.Id = tcid; TopClause.ParentId = g.Id; TopClause = g; TopClause.Save(DbUtil.Db); } TopClause.Save(DbUtil.Db, increment: true); }
public virtual bool Action(TopClause child) { _HTML += "TOP "; if (child.TopCount != null) { Scan(child.TopCount); } if (child.IsPercent) { _HTML += " PERCENT"; } if (child.IsWithTies) { _HTML += " WITH TIES"; } _HTML += " "; return(false); }
public void UpdateCondition() { this.CopyPropertiesTo(Selected); TopClause.Save(DbUtil.Db, increment: true); }
public void DeleteCondition() { Selected.DeleteClause(); TopClause.Save(DbUtil.Db, increment: true); }
public void Cut() { HttpContext.Current.Session["QueryClipboard"] = Selected.ToXml(); Selected.DeleteClause(); TopClause.Save(DbUtil.Db, increment: true); }
public void Cut() { Util.QueryClipboard = Selected.ToXml(); Selected.DeleteClause(); TopClause.Save(Db, increment: true); }