internal static string GetUserTaskCountString(string serverTag) { UserTaskCount utc = UserTaskAdapter.Instance.GetUserTaskCount(DeluxeIdentity.CurrentUser.ID); return("{" + string.Format("tag:\"{0}\", banCount:{1}, yueCount:{2}, banExpiredCount:{3}, yueExpiredCount:{4}", serverTag, utc.BanCount, utc.YueCount, utc.BanExpiredCount, utc.YueExpiredCount) + "}"); }
public Report GetReport(int projectID) { using (DataAccessLayer modelAccess = new DataAccessLayer()) { Project p = modelAccess.GetProject(projectID); if (p == null) { return(null); } Report report = new Report(); report.ProjectName = p.ProjectName; report.sprintNames.Add("Start"); report.sprintNames.AddRange(p.Iterations.Select(i => i.SprintName).ToList()); report.TotalEffort = p.ProductBacklogItems.Sum(pbi => pbi.EffortScore ?? 0); report.projectBurndownData.Add(report.TotalEffort); report.sprintVelocities.Add(0); foreach (Iteration i in p.Iterations) { List <ProductBacklogItem> pbis = i.ProductBacklogItems.Where(pbi => pbi.DateFinished.HasValue) .Where( result => result.DateFinished.Value > i.SprintStartDate && result.DateFinished.Value < i.SprintEndDate) .ToList(); int sum = pbis.Where(item => item.EffortScore.HasValue).Sum(pbi => pbi.EffortScore.Value); report.projectBurndownData.Add((report.projectBurndownData.Last() - sum)); report.sprintVelocities.Add(sum); report.TotalBacklogItemsFinished += pbis.Count; foreach (ProductBacklogItem pbi in pbis) { foreach (BacklogItemTask t in pbi.Tasks) { if (t.CurrentUserID.HasValue) { User u = modelAccess.GetUser(t.CurrentUserID.Value); if (report.TotalTasksFinishedByUser.Count(item => item.UserName == u.UserName) == 1) { UserTaskCount userTaskCount = report.TotalTasksFinishedByUser.First(utc => utc.UserName == u.UserName); userTaskCount.TaskCount++; } else { report.TotalTasksFinishedByUser.Add(new UserTaskCount() { TaskCount = 1, UserName = u.UserName }); } } } } } int sumOfVelocities = report.sprintVelocities.Where(vel => vel != 0).Sum(); int countOfVelocities = report.sprintVelocities.Count(vel => vel != 0); if (countOfVelocities == 0 || sumOfVelocities == 0) { report.CurrentAverageVelocity = 0; } else { report.CurrentAverageVelocity = sumOfVelocities / countOfVelocities; } report.VelocityChart = ChartHelper.BarChart( ChartHelper.ClearBlue("rgba"), ChartHelper.Black("rgba"), ChartHelper.ClearBlue("rgba"), ChartHelper.ClearWhite("rgba"), report.sprintNames, "Project Velocities", report.sprintVelocities ); report.BurndownChart = ChartHelper.LineGraph( ChartHelper.ClearBlue("rgba"), ChartHelper.Black("rgba"), ChartHelper.ClearWhite("rgba"), ChartHelper.Black("hex"), ChartHelper.DarkGreen("hex"), ChartHelper.Black("rgba"), report.sprintNames, "Burndown Chart", report.projectBurndownData ); return(report); } }