public SearchResponse SearchIssuesByQuery(JqlQuery jqlQuery, List <string> fields, int startAt, int maxResults) { var searchRequest = new SearchRequest { JqlQuery = jqlQuery.CreateJqlQuery(), Fields = fields, StartAt = startAt, MaxResults = maxResults }; try { var request = CreateRequest(Method.GET, searchRequest.CreateSearchRequest()); var response = ExecuteRequest(request); AssertStatus(response, HttpStatusCode.OK); var data = _deserializer.Deserialize <SearchResponse>(response); return(data); } catch (Exception ex) { Trace.TraceError("SearchIssuesByQuery(jqlQuery, fields, startAt, maxResults) error: {0}", ex); throw new JiraClientException("Could not load issues", ex); } }
public List <Issue> SearchIssuesByTraineeId(int traineeId) { var trainee = _traineeProvider.GetTrainee(traineeId); // jql query var query = new JqlQuery { Assignee = trainee.User.Login, IssueTypes = new List <string> { "Task", "Sub-task", "Bug", "Improvement" }, StartDate = trainee.Group.StartDate, ReleaseDate = trainee.Group.FinishDate, }; // fields to return var fields = new List <string> { "summary", "timetracking", "assignee", "issuetype", "status", }; var startAt = 0; var maxResults = -1; var issues = _client.SearchIssuesByQuery(query, fields, startAt, maxResults).Issues; var issuesDataModel = new List <Issue>(); foreach (var issue in issues) { issuesDataModel.Add(new Issue { Key = issue.Key, Summary = issue.Fields.Summary, Status = issue.Fields.Status.Name, IconUrl = issue.Fields.IssueType.IconUrl, IssueType = issue.Fields.IssueType.Name, OriginalEstimate = issue.Fields.TimeTracking.OriginalEstimateSeconds, TimeSpent = issue.Fields.TimeTracking.TimeSpentSeconds, ColorName = issue.Fields.Status.StatusCategory.ColorName, TraineeId = traineeId }); } return(issuesDataModel); }