// Get all issues names within the given date range public List<JiraTimeSheet> ProcessIssues(DateTime startDate, DateTime endDate) { List<Issue> issueList = new List<Issue>(); JiraManager manager = new JiraManager(); int startAt = 0; int total; // Prepare query to search issues in selected time range string jql = "updated >= " + startDate.ToString("yyyy-MM-dd") + " and created <= " + endDate.ToString("yyyy-MM-dd") + " and timespent > 0"; do { SearchResponse issueListResponse = manager.GetIssues(jql, startAt: startAt); total = issueListResponse.Total; startAt = startAt + 50; issueList.AddRange(issueListResponse.IssueDescriptions); } while (startAt < total); var issues = string.Empty; foreach (var key in issueList) { if (!string.IsNullOrEmpty(issues)) { issues = issues + "," + key.Key; } else { issues = key.Key; } } List<JiraTimeSheet> jiraTimeSheetList = ProcessIssueWorkLogs(issues, startDate, endDate); return jiraTimeSheetList; }
// Get all issues names within the given date range public List <JiraTimeSheet> ProcessIssues(DateTime startDate, DateTime endDate) { List <Issue> issueList = new List <Issue>(); JiraManager manager = new JiraManager(); int startAt = 0; int total; // Prepare query to search issues in selected time range string jql = "updated >= " + startDate.ToString("yyyy-MM-dd") + " and created <= " + endDate.ToString("yyyy-MM-dd") + " and timespent > 0"; do { SearchResponse issueListResponse = manager.GetIssues(jql, startAt: startAt); total = issueListResponse.Total; startAt = startAt + 50; issueList.AddRange(issueListResponse.IssueDescriptions); } while (startAt < total); var issues = string.Empty; foreach (var key in issueList) { if (!string.IsNullOrEmpty(issues)) { issues = issues + "," + key.Key; } else { issues = key.Key; } } List <JiraTimeSheet> jiraTimeSheetList = ProcessIssueWorkLogs(issues, startDate, endDate); return(jiraTimeSheetList); }
// Process issue details and its worlogs public List <JiraTimeSheet> ProcessIssueWorkLogs(string issues, DateTime startDate, DateTime endDate) { List <JiraTimeSheet> jiraTimeSheetList = new List <JiraTimeSheet>(); JiraManager manager = new JiraManager(); int startAt = 0; int total; do { Expand keyDetailsList = manager.GetIssueDetails(issues, startAt); foreach (Issue keyDetails in keyDetailsList.IssueList) { //Call jira rest api to get all worklogs for a issue WorklogOfIssue workLogs = manager.GetWorkLogsForIssue(keyDetails.Key); IssueWorklog objWorklog = GetIssueTimeSpent(workLogs, startDate, endDate); if (objWorklog.TimeSpentSeconds > 0) { JiraTimeSheet jiraTimeSheet = new JiraTimeSheet(); foreach (FixVersion fixVersion in keyDetails.Fields.FixVersions) { if (!string.IsNullOrEmpty(jiraTimeSheet.FixVersions)) { jiraTimeSheet.FixVersions += fixVersion.Version; } else { jiraTimeSheet.FixVersions = fixVersion.Version; } } if (keyDetails.Fields.AssigneeName != null) { jiraTimeSheet.Assignee = keyDetails.Fields.AssigneeName.Name; } if (keyDetails.Fields.OriginalAssignee != null) { jiraTimeSheet.OriginalAssignee = keyDetails.Fields.OriginalAssignee.Originalassignee; } jiraTimeSheet.Created = keyDetails.Fields.CreatedDate.DateTime; jiraTimeSheet.IssueType = keyDetails.Fields.IssueType.Name; jiraTimeSheet.Key = keyDetails.Key; jiraTimeSheet.Project = keyDetails.Fields.Project.Name; jiraTimeSheet.Reporter = keyDetails.Fields.Reporter.reporter; jiraTimeSheet.Status = keyDetails.Fields.Status.Name; jiraTimeSheet.Summary = keyDetails.Fields.Summary; jiraTimeSheet.TimeLoggedBy = objWorklog.LoggedInPerson; jiraTimeSheet.TimeSpent = objWorklog.TimeSpent; jiraTimeSheet.TotalTimeSpent = objWorklog.TimeSpentSeconds; jiraTimeSheet.Updated = keyDetails.Fields.UpdatedDate.DateTime; if (keyDetails.Fields.Website != null) { jiraTimeSheet.Website = keyDetails.Fields.Website.WebSite; } jiraTimeSheetList.Add(jiraTimeSheet); } } total = keyDetailsList.Total; startAt = startAt + 50; } while (startAt < total); if (jiraTimeSheetList.Count > 0) { jiraTimeSheetList = jiraTimeSheetList.OrderBy(o => o.Updated).ThenBy(o => o.Created).ThenBy(o => o.FixVersions).ToList(); } return(jiraTimeSheetList); }
public ActionResult Login(string returnUrl) { JiraManager manager = new JiraManager(); //string result = manager.AutenticationJira(); //if (!result.Equals("OK")) //{ // TempData["errorMessage"] = result; //} return RedirectToAction("Index", "Home"); }
// Process issue details and its worlogs public List<JiraTimeSheet> ProcessIssueWorkLogs(string issues, DateTime startDate, DateTime endDate) { List<JiraTimeSheet> jiraTimeSheetList = new List<JiraTimeSheet>(); JiraManager manager = new JiraManager(); int startAt = 0; int total; do { Expand keyDetailsList = manager.GetIssueDetails(issues, startAt); foreach (Issue keyDetails in keyDetailsList.IssueList) { //Call jira rest api to get all worklogs for a issue WorklogOfIssue workLogs = manager.GetWorkLogsForIssue(keyDetails.Key); IssueWorklog objWorklog = GetIssueTimeSpent(workLogs, startDate, endDate); if (objWorklog.TimeSpentSeconds > 0) { JiraTimeSheet jiraTimeSheet = new JiraTimeSheet(); foreach (FixVersion fixVersion in keyDetails.Fields.FixVersions) { if (!string.IsNullOrEmpty(jiraTimeSheet.FixVersions)) { jiraTimeSheet.FixVersions += fixVersion.Version; } else { jiraTimeSheet.FixVersions = fixVersion.Version; } } if (keyDetails.Fields.AssigneeName != null) { jiraTimeSheet.Assignee = keyDetails.Fields.AssigneeName.Name; } if (keyDetails.Fields.OriginalAssignee != null) { jiraTimeSheet.OriginalAssignee = keyDetails.Fields.OriginalAssignee.Originalassignee; } jiraTimeSheet.Created = keyDetails.Fields.CreatedDate.DateTime; jiraTimeSheet.IssueType = keyDetails.Fields.IssueType.Name; jiraTimeSheet.Key = keyDetails.Key; jiraTimeSheet.Project = keyDetails.Fields.Project.Name; jiraTimeSheet.Reporter = keyDetails.Fields.Reporter.reporter; jiraTimeSheet.Status = keyDetails.Fields.Status.Name; jiraTimeSheet.Summary = keyDetails.Fields.Summary; jiraTimeSheet.TimeLoggedBy = objWorklog.LoggedInPerson; jiraTimeSheet.TimeSpent = objWorklog.TimeSpent; jiraTimeSheet.TotalTimeSpent = objWorklog.TimeSpentSeconds; jiraTimeSheet.Updated = keyDetails.Fields.UpdatedDate.DateTime; if (keyDetails.Fields.Website != null) { jiraTimeSheet.Website = keyDetails.Fields.Website.WebSite; } jiraTimeSheetList.Add(jiraTimeSheet); } } total = keyDetailsList.Total; startAt = startAt + 50; } while (startAt < total); if (jiraTimeSheetList.Count > 0) { jiraTimeSheetList = jiraTimeSheetList.OrderBy(o => o.Updated).ThenBy(o => o.Created).ThenBy(o => o.FixVersions).ToList(); } return jiraTimeSheetList; }