public async Task Update(IJiraClient client, DateTime startUpdateDate, string projectKey, ICacheUpdateProgress progress = null) { await EnsureInitialized(); progress = progress ?? new NullCacheUpdateProgres(); if (client == null) { throw new ArgumentNullException(nameof(client)); } if (string.IsNullOrWhiteSpace(projectKey)) { throw new ArgumentNullException(nameof(projectKey)); } DateTime lastUpdateDate = await GetLastUpdateDateTime(projectKey, startUpdateDate); int itemPaging = 0; while (true) { const int queryLimit = 50; IJiraIssue[] updatedIssues = await client.GetIssues(projectKey, lastUpdateDate, queryLimit, itemPaging); foreach (var issue in updatedIssues) { CachedIssue flatIssue = await client.RetrieveDetails(issue); await _repository.AddOrReplaceCachedIssue(flatIssue); progress.UpdatedIssue(flatIssue.Key, flatIssue.Updated.Value); } itemPaging += queryLimit; if (updatedIssues.Length != queryLimit) { break; } } }
public ActionResult Report() { var setup = Session["setup"] as ReportSetup; if (setup == null) { return(RedirectToAction("Index")); } var issues = _jiraClient.GetIssues(setup.JiraApiUrl, setup.JiraUserName, setup.JiraPassword, setup.Jql); var capacity = ParseCapacitySetup(setup.WeeklyCapacityHoursPerStream); var issueFinalStatuses = ParseIssueFinalStatuses(setup.IssueFinalStatuses); var reportData = _reportService.GetReportData(issues, setup.ColumnLabelPrefix, capacity, issueFinalStatuses); var model = new ReportModel() { ReportSetup = setup, ReportData = reportData }; return(View(model)); }
public IEnumerable <Issue> GetIssues(String projectKey) { return(client.GetIssues(projectKey).Select(Issue.From).ToArray()); }