public static SearchFolder Create(ContentQuery query) { var folder = new SearchFolder { Children = query.Execute().Nodes.ToArray() }; return(folder); }
private FieldValidationResult ValidateWithQuery(List <Node> list, ContentQuery query) { var x = query.Execute(); List <int> idList = x.Identifiers.ToList(); idList.Sort(); foreach (Node node in list) { if (!idList.Contains(node.Id)) { var result = new FieldValidationResult(QueryName); result.AddParameter("Path", node.Path); return(result); } } return(FieldValidationResult.Successful); }
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); }
/// <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("Name") }; var settings = new QuerySettings { EnableAutofilters = FilterStatus.Disabled, EnableLifespanFilter = FilterStatus.Disabled, Sort = sort }; var query = new ContentQuery { Text = GroupQuery, Settings = settings }; query.AddClause(string.Format("-Path:({0})", string.Join(" ", Identifiers.SpecialGroupPaths))); var results = query.Execute(); groups.AddRange(results.Nodes); } return(groups); }
/// <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); }
internal void WriteQueryResult(PortalContext portalContext, OData.ODataRequest req) { var settings = new QuerySettings { Top = req.Top, Skip = req.Skip, Sort = req.Sort }; var contentQuery = new ContentQuery { Settings = settings, Text = req.ContentQueryText }; if (req.RepositoryPath != Repository.RootPath) { contentQuery.AddClause("InTree:\"" + req.RepositoryPath + "\""); } var result = contentQuery.Execute(); var contents = new List <Dictionary <string, object> >(); var projector = Projector.Create(req, true); foreach (var node in result.Nodes) { var content = Content.Create(node); var fields = CreateFieldDictionary(content, portalContext, projector); contents.Add(fields); } var count = req.InlineCount == InlineCount.AllPages ? result.Count : contents.Count; if (req.CountOnly) { WriteCount(portalContext, count); } else { WriteMultipleContent(portalContext, contents, count); } }
private IEnumerable <ISecurityContainer> GetAdminGroups() { var ag = new List <ISecurityContainer>(); if (string.IsNullOrEmpty(this.Groups)) { return(ag); } var ags = this.Groups.Split(new[] { ',', ';', ' ' }, StringSplitOptions.RemoveEmptyEntries); using (new SystemAccount()) { foreach (var agName in ags) { try { if (agName.StartsWith("/Root/")) { var group = Node.LoadNode(agName) as ISecurityContainer; if (group != null) { ag.Add(group); } } else { ContentQuery cq = null; var nameParts = agName.Split(new[] { '\\' }, StringSplitOptions.RemoveEmptyEntries); var containerTypes = new[] { "Group", "OrganizationalUnit" }; switch (nameParts.Length) { case 0: break; case 1: // load group or OU only by name cq = ContentQuery.CreateQuery(ContentRepository.SafeQueries.TypeIsAndName, null, containerTypes, nameParts[0]); break; default: // load group or OU by domain and name var domain = ContentQuery.Query(ContentRepository.SafeQueries.TypeIsAndName, null, "Domain", nameParts[0]).Nodes.FirstOrDefault(); if (domain != null) { cq = ContentQuery.CreateQuery(ContentRepository.SafeQueries.InTreeAndTypeIsAndName, null, domain.Path, containerTypes, nameParts[1]); } break; } if (cq != null) { ag.AddRange(cq.Execute().Nodes.Cast <ISecurityContainer>()); } } } catch (Exception ex) { SnLog.WriteException(ex); } } } return(ag); }
private IEnumerable <ISecurityContainer> GetAdminGroups() { var ag = new List <ISecurityContainer>(); if (string.IsNullOrEmpty(this.Groups)) { return(ag); } var ags = this.Groups.Split(new [] { ',', ';', ' ' }, StringSplitOptions.RemoveEmptyEntries); using (new SystemAccount()) { foreach (var agName in ags) { try { if (agName.StartsWith("/Root/")) { var group = Node.LoadNode(agName) as ISecurityContainer; if (group != null) { ag.Add(group); } } else { ContentQuery cq = null; const string queryText = "+TypeIs:(Group OrganizationalUnit) +Name:{0}"; var nameParts = agName.Split(new[] { '\\' }, StringSplitOptions.RemoveEmptyEntries); switch (nameParts.Length) { case 0: break; case 1: //load group or OU only by name cq = ContentQuery.CreateQuery(string.Format(queryText, nameParts[0])); break; default: //load group or OU by domain and name var domain = ContentQuery.Query("+TypeIs:Domain +Name:" + nameParts[0]).Nodes.FirstOrDefault(); if (domain != null) { cq = ContentQuery.CreateQuery(string.Format(queryText, nameParts[1])); cq.AddClause("InTree:\"" + domain.Path + "\""); } break; } if (cq != null) { ag.AddRange(cq.Execute().Nodes.Cast <ISecurityContainer>()); } } } catch (Exception ex) { Logger.WriteException(ex); } } } return(ag); }