예제 #1
0
        private async void GetIssuesAsync()
        {
            this._parent.StartLoading();

            string jql = JqlBuilder.Build(this.SprintList.ToArray(), this.IsAssignedToMe, this.IsUnassigned,
                                          this.PriorityList.ToArray(), this.StatusList.ToArray(), this.ProjectList.ToArray(), this.SearchText);

            this.issueTask = this._issueService.GetAllIssuesByJqlAsync(0, jql);

            try
            {
                var issueList = await issueTask as IssueListPaged;

                this.IssueList.Clear();

                foreach (Issue i in issueList.Issues)
                {
                    this.IssueList.Add(i);
                }

                CheckTotalNumberOfActiveLoadings();

                HideErrorMessages(this._parent);
            }
            catch (JiraException ex)
            {
                ShowErrorMessages(ex, this._parent);
            }
        }
예제 #2
0
        public async Task <List <JiraIssueDto> > GetIssues(List <IssueState> issueState, List <IssueState> notIssueState, string issueAssignee, params int[] sprints)
        {
            int                 startAt    = 0;
            IssuesResultDto     pageResult = null;
            List <JiraIssueDto> results    = new List <JiraIssueDto>();

            do
            {
                string jql = JqlBuilder.New()
                             .Sprints(sprints)
                             .If(!string.IsNullOrEmpty(issueAssignee), x => x.And().Assignee(issueAssignee))
                             .If(issueState != null && issueState.Any(), x => x.And().StatusIn(issueState))
                             .If(notIssueState != null && notIssueState.Any(), x => x.And().StatusNotIn(notIssueState))
                             .Ampersand()
                             .Fields("summary")
                             .Ampersand()
                             .StartAt(startAt)
                             .ToString();

                HttpResponseMessage message = await _httpClient.GetAsync($"jira/rest/api/2/search?{jql}");

                pageResult = await message.Content.ReadAsAsync <IssuesResultDto>();

                results.AddRange(pageResult.Issues);
                startAt = startAt + pageResult.Issues.Length;
            }while (startAt < pageResult.Total);

            return(results);
        }
예제 #3
0
        public void TestSearchIssues()
        {
            var jsb     = new JqlSearchBean();
            var builder = new JqlBuilder();
            var jql     = builder.AddCondition(EField.Project, EOperator.EQUALS, "DEMO")
                          .And().AddCondition(EField.Status, EOperator.EQUALS, Constants.StatusInProgress)
                          .OrderBy(SortOrder.Asc, EField.Created);

            jsb.Jql = jql;
            jsb.AddField(EField.IssueKey, EField.Status, EField.Due, EField.Summary, EField.IssueType, EField.Priority, EField.Updated, EField.Transitions);
            jsb.AddExpand(EField.Transitions);
            var result = RestClient.SearchClient.SearchIssues(jsb);

            result.Should().NotBeNull();
        }