Exemple #1
0
 /// <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));
 }
Exemple #2
0
        /// <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));
        }
Exemple #3
0
        /// <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));
        }
Exemple #4
0
 /// <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));
 }