// 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); }
// 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; }