Пример #1
0
        /// <summary>
        ///     Generates batch header objects to be used in batch processing of Issues and Worklogs
        /// </summary>
        /// <param name="jiraBatchDataHeader">A <see cref="JiraBatchDataHeader" /> object with initial input data</param>
        /// <returns>A list of <see cref="JiraBatchDataHeader" /> objects with batch data</returns>
        private static List <JiraBatchDataHeader> GenerateBatchHeaders(JiraBatchDataHeader jiraBatchDataHeader)
        {
            var headerList = new List <JiraBatchDataHeader>();

            if (jiraBatchDataHeader.TotalItemsCount > 100)
            {
                var maxBatches = jiraBatchDataHeader.TotalItemsCount / 100 +
                                 (jiraBatchDataHeader.TotalItemsCount % 100 == 0 ? 0 : 1);
                foreach (var batchNumber in Enumerable.Range(0, maxBatches))
                {
                    var startIndex = batchNumber * 100;
                    var endIndex   = startIndex + 99 < jiraBatchDataHeader.TotalItemsCount
                        ? startIndex + 99
                        : jiraBatchDataHeader.TotalItemsCount;
                    headerList.Add(
                        new JiraBatchDataHeader(jiraBatchDataHeader.Query,
                                                jiraBatchDataHeader.TotalItemsCount,
                                                jiraBatchDataHeader.StartDate,
                                                jiraBatchDataHeader.EndDate,
                                                startIndex,
                                                endIndex,
                                                batchNumber));
                }
            }
            else
            {
                headerList.Add(new JiraBatchDataHeader(jiraBatchDataHeader.Query,
                                                       jiraBatchDataHeader.TotalItemsCount,
                                                       jiraBatchDataHeader.StartDate,
                                                       jiraBatchDataHeader.EndDate,
                                                       0, 99));
            }

            return(headerList);
        }
Пример #2
0
        private async Task <JiraBatchDataHeader> GetHeader(string jql)
        {
            var firstIssue = await _jira.Issues.GetIssuesFromJqlAsync(jql, 0);

            var header = new JiraBatchDataHeader(jql, firstIssue.TotalItems);

            return(header);
        }
Пример #3
0
        public async Task <IEnumerable <JiraIssue> > GetEpicIssuesBatch(JiraBatchDataHeader jiraBatchDataHeader)
        {
            var issuesBatch = await _jira.Issues.GetIssuesFromJqlAsync(jiraBatchDataHeader.Query, 100,
                                                                       jiraBatchDataHeader.BatchStartAtIndex);

            var processedIssues = new List <JiraIssue>();

            foreach (var i in issuesBatch.ToList())
            {
                var ji = i.Convert();
                await SetSubTaskEpicLink(ji);

                processedIssues.Add(ji);
            }

            return(processedIssues);
        }