BurndownData GetBurndownData(int project, string label, string historicalDataPath) { var tracker = new PivotalTracker(Environment.GetEnvironmentVariable("TrackerToken", EnvironmentVariableTarget.Machine)); var stories = tracker.Stories(project).Result .Where(item => item.Labels.Contains(label, StringComparer.InvariantCultureIgnoreCase)) .ToArray(); var pointsRemaining = stories.Where(item => item.CurrentState != PivotalStoryState.Accepted).Sum(item => Math.Max(0, item.Estimate ?? 0)); var totalPointsBurned = stories.Where(item => item.CurrentState == PivotalStoryState.Accepted).Sum(item => Math.Max(0, item.Estimate ?? 0)); var burndownData = new BurndownData(); burndownData.Load(Server.MapPath(historicalDataPath)); burndownData.Add(DateTime.Today, pointsRemaining, totalPointsBurned); return burndownData; }