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