// Calculate time spent on a issue in given date range public IssueWorklog GetIssueTimeSpent(WorklogOfIssue workLogsOfIssue, DateTime toDate, DateTime fromDate) { int timeSpentSeconds = 0; string loggedInPerson = string.Empty; string timeSpent = string.Empty; IssueWorklog objIssueWorklog = new IssueWorklog(); List <LoggedInUserTimeSpent> objInUserTimeSpents = new List <LoggedInUserTimeSpent>(); foreach (Worklogs worklogs in workLogsOfIssue.Worklogs) { if (worklogs.Started.DateTime >= toDate && worklogs.Started.DateTime <= fromDate) { LoggedInUserTimeSpent objUserTimeSpent = new LoggedInUserTimeSpent(); if (objInUserTimeSpents.All(o => o.LoggedInPerson != worklogs.Author.Name)) { objUserTimeSpent.LoggedInPerson = worklogs.Author.Name; objUserTimeSpent.TimeSpent = worklogs.TimeSpentSeconds; objInUserTimeSpents.Add(objUserTimeSpent); } else { int index = objInUserTimeSpents.FindIndex(objLoggedInUserTimeSpent => objLoggedInUserTimeSpent.LoggedInPerson.Equals(worklogs.Author.Name, StringComparison.Ordinal)); objInUserTimeSpents.ElementAt(index).TimeSpent += worklogs.TimeSpentSeconds; } if (timeSpentSeconds > 0) { timeSpentSeconds = timeSpentSeconds + worklogs.TimeSpentSeconds; } else { timeSpentSeconds = worklogs.TimeSpentSeconds; } } } foreach (var loggedInDetails in objInUserTimeSpents) { if (!string.IsNullOrEmpty(timeSpent)) { loggedInPerson += "<br/>" + loggedInDetails.LoggedInPerson; } else { loggedInPerson = loggedInDetails.LoggedInPerson; } if (!string.IsNullOrEmpty(timeSpent)) { timeSpent += "<br/>" + loggedInDetails.TimeSpent; } else { timeSpent = loggedInDetails.TimeSpent.ToString(); } } objIssueWorklog.TimeSpentSeconds = timeSpentSeconds; objIssueWorklog.TimeSpent = timeSpent; objIssueWorklog.LoggedInPerson = loggedInPerson; return(objIssueWorklog); }
// Calculate time spent on a issue in given date range public IssueWorklog GetIssueTimeSpent(WorklogOfIssue workLogsOfIssue, DateTime toDate, DateTime fromDate) { int timeSpentSeconds = 0; string loggedInPerson = string.Empty; string timeSpent = string.Empty; IssueWorklog objIssueWorklog = new IssueWorklog(); List<LoggedInUserTimeSpent> objInUserTimeSpents = new List<LoggedInUserTimeSpent>(); foreach (Worklogs worklogs in workLogsOfIssue.Worklogs) { if (worklogs.Started.DateTime >= toDate && worklogs.Started.DateTime <= fromDate) { LoggedInUserTimeSpent objUserTimeSpent = new LoggedInUserTimeSpent(); if (objInUserTimeSpents.All(o => o.LoggedInPerson != worklogs.Author.Name)) { objUserTimeSpent.LoggedInPerson = worklogs.Author.Name; objUserTimeSpent.TimeSpent = worklogs.TimeSpentSeconds; objInUserTimeSpents.Add(objUserTimeSpent); } else { int index = objInUserTimeSpents.FindIndex(objLoggedInUserTimeSpent => objLoggedInUserTimeSpent.LoggedInPerson.Equals(worklogs.Author.Name,StringComparison.Ordinal)); objInUserTimeSpents.ElementAt(index).TimeSpent += worklogs.TimeSpentSeconds; } if (timeSpentSeconds > 0) { timeSpentSeconds = timeSpentSeconds + worklogs.TimeSpentSeconds; } else { timeSpentSeconds = worklogs.TimeSpentSeconds; } } } foreach (var loggedInDetails in objInUserTimeSpents) { if (!string.IsNullOrEmpty(timeSpent)) { loggedInPerson += "<br/>" + loggedInDetails.LoggedInPerson; } else { loggedInPerson = loggedInDetails.LoggedInPerson; } if (!string.IsNullOrEmpty(timeSpent)) { timeSpent += "<br/>" + loggedInDetails.TimeSpent; } else { timeSpent = loggedInDetails.TimeSpent.ToString(); } } objIssueWorklog.TimeSpentSeconds = timeSpentSeconds; objIssueWorklog.TimeSpent = timeSpent; objIssueWorklog.LoggedInPerson = loggedInPerson; return objIssueWorklog; }