private void FillLine(Line line, ISprint sprint, Issue[] issues, IEnumerable<string> ignoreTypes)
        {
            var sprintStart = new DateTime(sprint.Start.Ticks, DateTimeKind.Local);

            issues = issues.Where(i => !ignoreTypes.Contains(i.Type)).ToArray();
            var issueCount = issues.Count(i => i.Value.HasValue);
            var issueTotal = issues.Sum(i => i.Value != null ? i.Value.Value : 0);

            var averageValue = issueTotal/issueCount;

            issueTotal = issues.Sum(i => i.Value != null ? i.Value.Value : averageValue);

            line.AddPoint(issueTotal, sprintStart);

            var pointIssues = issues.Where(i => i.Timestamp.HasValue).OrderBy(i => i.Timestamp.Value);
            foreach (var pointIssue in pointIssues)
            {
                var value = pointIssue.Value.HasValue ? pointIssue.Value.Value : averageValue;
                var change = (float) (value*-1.0);
                var timestamp = pointIssue.Timestamp.Value;
                if (timestamp < sprintStart)
                    timestamp = sprintStart;
                var point = line.AddPointByChange(change, timestamp);
                point.Label = pointIssue.Id;
                point.Description = pointIssue.Summary;
                point.Estimate = pointIssue.Value.HasValue ? (int) pointIssue.Value.Value : (int?) null;
                point.Url = "http://davidweekleyhomes.myjetbrains.com/youtrack/issue/" + pointIssue.Id;
            }
        }