コード例 #1
0
        // 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);
        }
コード例 #2
0
        // 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;
        }