/// <summary> /// Possible since 5.7 /// Search for issues, with a CQL (e.g. from a filter) see /// <a href="https://docs.atlassian.com/confluence/REST/latest/#d2e4539">here</a> /// </summary> /// <param name="confluenceClient">IContentDomain to bind the extension method to</param> /// <param name="cqlClause">Confluence Query Language, like SQL, for the search</param> /// <param name="cqlContext"> /// the execution context for CQL functions, provides current space key and content id. If this is /// not provided some CQL functions will not be available. /// </param> /// <param name="pagingInformation">PagingInformation</param> /// <param name="expandSearch">The expand value for the search, when null the value from the ConfluenceClientConfig.ExpandSearch is taken</param> /// <param name="cancellationToken">CancellationToken</param> /// <returns>Result with content items</returns> public static Task <Result <Content> > SearchAsync(this IContentDomain confluenceClient, IFinalClause cqlClause, string cqlContext = null, PagingInformation pagingInformation = null, IEnumerable <string> expandSearch = null, CancellationToken cancellationToken = default) { var searchDetails = new SearchDetails(cqlClause) { Start = pagingInformation?.Start, Limit = pagingInformation?.Limit }; if (cqlContext != null) { searchDetails.CqlContext = cqlContext; } if (expandSearch != null) { searchDetails.ExpandSearch = expandSearch; } return(confluenceClient.SearchAsync(searchDetails, cancellationToken)); }
/// <summary> /// Possible since 5.7 /// Search for issues, with a CQL (e.g. from a filter) see /// <a href="https://docs.atlassian.com/confluence/REST/latest/#d2e4539">here</a> /// </summary> /// <param name="confluenceClient">IContentDomain to bind the extension method to</param> /// <param name="cqlClause">Confluence Query Language clause, created via Where</param> /// <param name="cqlContext"> /// the execution context for CQL functions, provides current space key and content id. If this is /// not provided some CQL functions will not be available. /// </param> /// <param name="limit">Maximum number of results returned, default is 20</param> /// <param name="expandSearch">The expand value for the search, when null the value from the ConfluenceClientConfig.ExpandSearch is taken</param> /// <param name="cancellationToken">CancellationToken</param> /// <returns>Result with content items</returns> public static Task <Result <Content> > SearchAsync(this IContentDomain confluenceClient, IFinalClause cqlClause, string cqlContext = null, int limit = 20, IEnumerable <string> expandSearch = null, CancellationToken cancellationToken = default) { return(confluenceClient.SearchAsync(cqlClause.ToString(), cqlContext, limit, expandSearch, cancellationToken)); }