Пример #1
0
        public void PlotGraph()
        {
            int         sprintLength  = (int)(CurrentSprint.EndDate - CurrentSprint.StartDate).TotalDays + 1;
            List <long> burndownHours = new List <long>();

            for (int i = 0; i < sprintLength; i++)
            {
                burndownHours.Add(0l);
            }

            foreach (UserStory userStory in _sprintBacklog)
            {
                userStory.Tasks = _taskClient.GetTasksByUserStoryId(userStory.Project.Id, userStory.Id);
                foreach (Task task in userStory.Tasks)
                {
                    List <TaskEstimate> dailyEstimateList = _taskClient.GetTaskEstimates(
                        task.UserStory.Project.Id,
                        task.UserStory.Id,
                        task.Id);
                    for (int i = 0; i < dailyEstimateList.Count; i++)
                    {
                        burndownHours[i] += dailyEstimateList[i].Estimate;
                    }
                }
            }

            long maxHours = 0;

            for (int i = 0; i < burndownHours.Count; i++)
            {
                if (burndownHours[i] > maxHours)
                {
                    maxHours = burndownHours[i];
                }
            }

            PlotModel = new PlotModel {
                Title = "Burndown Chart"
            };

            LineSeries lineSeries = new LineSeries();

            PlotModel.Axes.Add(new DateTimeAxis {
                Position = AxisPosition.Bottom, Minimum = DateTimeAxis.ToDouble(CurrentSprint.StartDate), Maximum = DateTimeAxis.ToDouble(CurrentSprint.EndDate), StringFormat = "d/M", Title = "Date"
            });
            PlotModel.Axes.Add(new LinearAxis {
                Position = AxisPosition.Left, Minimum = 0, Maximum = (maxHours * 1.1) + 1, Title = "Hours"
            });
            for (int i = 0; i < sprintLength; i++)
            {
                lineSeries.Points.Add(new DataPoint(DateTimeAxis.ToDouble(CurrentSprint.StartDate.AddDays(i)), burndownHours[i]));
            }

            PlotModel.Series.Add(lineSeries);
        }