/// <summary> /// Search for issues, with a JQL (e.g. from a filter) /// See: https://docs.atlassian.com/jira/REST/latest/#d2e2713 /// </summary> /// <param name="jiraClient">IIssueDomain to bind the extension method to</param> /// <param name="jql">Jira Query Language, like SQL, for the search. Use Where builder</param> /// <param name="startAt">Start of the results to return, used for paging. Default is 0</param> /// <param name="maxResults">Maximum number of results returned, default is 20</param> /// <param name="fields">Jira fields to include, if null the defaults from the JiraConfig.SearchFields are taken</param> /// <param name="expand"> /// Additional fields to includes in the results, if null the defaults from the /// JiraConfig.ExpandSearch are taken /// </param> /// <param name="cancellationToken">CancellationToken</param> /// <returns>SearchResults</returns> public static Task <SearchIssuesResult <Issue, JqlIssueSearch> > SearchAsync(this IIssueDomain jiraClient, IFinalClause jql, int maxResults = 20, int startAt = 0, IEnumerable <string> fields = null, IEnumerable <string> expand = null, CancellationToken cancellationToken = default) { return(jiraClient.SearchAsync(jql.ToString(), new Page { MaxResults = maxResults, StartAt = startAt }, fields, expand, cancellationToken)); }
/// <summary> /// Search for issues, with a JQL (e.g. from a filter) /// See: https://docs.atlassian.com/jira/REST/latest/#d2e2713 /// </summary> /// <param name="jiraClient">IIssueDomain to bind the extension method to</param> /// <param name="search">Search information, with Jira Query Language, like SQL, for the search</param> /// <param name="page">Page with paging information, overwriting the page info in the search.</param> /// <param name="fields">Jira fields to include, if null the defaults from the JiraConfig.SearchFields are taken</param> /// <param name="cancellationToken">CancellationToken</param> /// <returns>SearchIssuesResult</returns> public static Task <SearchIssuesResult <Issue, JqlIssueSearch> > SearchAsync(this IIssueDomain jiraClient, JqlIssueSearch search, Page page = null, IEnumerable <string> fields = null, CancellationToken cancellationToken = default) { if (search == null) { throw new ArgumentNullException(nameof(search)); } if (page != null) { search.MaxResults = page.MaxResults ?? 20; search.StartAt = page.StartAt ?? 0; } return(jiraClient.SearchAsync(search, cancellationToken)); }
/// <summary> /// Search for issues, with a JQL (e.g. from a filter) /// See: https://docs.atlassian.com/jira/REST/latest/#d2e2713 /// </summary> /// <param name="jiraClient">IIssueDomain to bind the extension method to</param> /// <param name="jql">Jira Query Language, like SQL, for the search</param> /// <param name="page">Page with paging information, default this starts at the beginning with a maxResults of 20</param> /// <param name="fields">Jira fields to include, if null the defaults from the JiraConfig.SearchFields are taken</param> /// <param name="cancellationToken">CancellationToken</param> /// <returns>SearchIssuesResult</returns> public static Task <SearchIssuesResult <Issue, JqlIssueSearch> > SearchAsync(this IIssueDomain jiraClient, string jql, Page page = null, IEnumerable <string> fields = null, CancellationToken cancellationToken = default(CancellationToken)) { if (jql == null) { throw new ArgumentNullException(nameof(jql)); } var search = new JqlIssueSearch { Jql = jql, ValidateQuery = true, MaxResults = page?.MaxResults ?? 20, StartAt = page?.StartAt ?? 0, Fields = fields ?? new List <string>(JiraConfig.SearchFields) }; return(jiraClient.SearchAsync(search, cancellationToken)); }
/// <summary> /// Search for issues, with a JQL (e.g. from a filter) /// See: https://docs.atlassian.com/jira/REST/latest/#d2e2713 /// </summary> /// <param name="jiraClient">IIssueDomain to bind the extension method to</param> /// <param name="jql">Jira Query Language, like SQL, for the search. Use Where builder</param> /// <param name="maxResults">Maximum number of results returned, default is 20</param> /// <param name="fields">Jira fields to include, if null the defaults from the JiraConfig.SearchFields are taken</param> /// <param name="cancellationToken">CancellationToken</param> /// <returns>SearchResult</returns> public static async Task <SearchResult <Issue> > SearchAsync(this IIssueDomain jiraClient, IFinalClause jql, int maxResults = 20, IEnumerable <string> fields = null, CancellationToken cancellationToken = default(CancellationToken)) { return(await jiraClient.SearchAsync(jql.ToString(), maxResults, fields, cancellationToken).ConfigureAwait(false)); }