public static SearchFolder Create(ContentQuery query) { var folder = new SearchFolder { _contentQuery = query, Children = query.Execute().Nodes.ToArray() }; return folder; }
/// <summary> /// Gets the groups. /// </summary> /// <returns>List of group nodes.</returns> private List<Node> GetGroups() { var groups = new List<Node>(); if (!String.IsNullOrEmpty(GroupQuery)) { var sort = new[] { new SortInfo { FieldName = "Name" } }; var settings = new QuerySettings {EnableAutofilters = false, EnableLifespanFilter = false, Sort = sort}; var query = new ContentQuery { Text = GroupQuery, Settings = settings}; query.AddClause(string.Format("-Name:({0})", string.Join(" ", RepositoryConfiguration.SpecialGroupNames))); var results = query.Execute(); groups.AddRange(results.Nodes); } return groups; }
public void ContentQuery_RecursiveQuery_Empty() { ContentQuery q; IEnumerable<int> r; int id; q = new ContentQuery { Text = "+Members:{{Name:NOBODY42}} +Name:Administrators .AUTOFILTERS:OFF" }; r = q.ExecuteToIds(ExecutionHint.ForceIndexedEngine); Assert.IsTrue(r.Count() == 0, "#05"); q = new ContentQuery { Text = "Members:{{Name:NOBODY42}} Name:Administrators .AUTOFILTERS:OFF" }; r = q.ExecuteToIds(ExecutionHint.ForceIndexedEngine); Assert.IsTrue(r.Count() > 0, "#07"); id = r.First(); Assert.IsTrue(id == Group.Administrators.Id, "#08"); }
public void ContentQuery_RecursiveQuery() { var q = new ContentQuery { Text = "Members:{{Id:1}} .AUTOFILTERS:OFF", Settings = new QuerySettings { EnableAutofilters = false } }; var r = q.ExecuteToIds(ExecutionHint.ForceIndexedEngine); Assert.IsTrue(r.Count() > 0, "#01"); var id = r.First(); Assert.IsTrue(id == Group.Administrators.Id, "#02"); q = new ContentQuery { Text = "Members:{{Name:admin*}} .AUTOFILTERS:OFF", Settings = new QuerySettings { EnableAutofilters = false } }; r = q.ExecuteToIds(ExecutionHint.ForceIndexedEngine); Assert.IsTrue(r.Count() > 0, "#11"); id = r.First(); Assert.IsTrue(id == Group.Administrators.Id, "#12"); }
public bool HasApprovingItems() { var hasPermission = false; var cq = new ContentQuery(); cq.Text = "+InFolder:/Root/Sites/Default_Site/Book_Rental_Demo_Site/News* +Approvable:yes +Type:newsarticle"; var result = cq.Execute(ExecutionHint.ForceIndexedEngine); int i = 0; var nodeList = result.Nodes.ToList(); var count = nodeList.Count; while (!hasPermission && i<count) { hasPermission |= nodeList[i].Security.HasPermission(PermissionType.Approve); i++; } return hasPermission; }