private static void GetPreviousVersionStats(Report report, ReportViewModel viewReport, ReportTestStatistics latestStats) { if (report.Previous == null) { return; } var previousStats = report.Previous.Statistics; if (previousStats.IsEmpty) { return; } if (latestStats.PercentageSuccess > previousStats.PercentageSuccess) { viewReport.StateChange = ReportViewModel.ProjectStateChange.Good; } else if (latestStats.PercentageSuccess == previousStats.PercentageSuccess) { viewReport.StateChange = ReportViewModel.ProjectStateChange.Neutral; } else if (latestStats.PercentageSuccess < previousStats.PercentageSuccess) { viewReport.StateChange = ReportViewModel.ProjectStateChange.Bad; } viewReport.HasPreviousStats = true; }
public ActionResult Dashboard() { var reports = _repository.GetReports(); //Create an object that can be easily used on the view to avoid logic inside the view List<ReportViewModel> viewReports = new List<ReportViewModel>(); foreach (var report in reports) { //convert each report to a reportViewModel // report. // viewReports.Add(report); ReportViewModel viewReport = new ReportViewModel(); var latestStats = report.Latest.Statistics; if (latestStats.IsEmpty == false) { viewReport.HasDetailedStats = true; viewReport.Date = report.Latest.Date; viewReport.Name = report.Id; viewReport.Success = latestStats.Success; viewReport.NumberOfTests = latestStats.NumberOfTests; viewReport.Inconclusive = latestStats.Inconclusive; viewReport.Failures = latestStats.Failures; viewReport.PercentageSuccess = (int)latestStats.PercentageSuccess; viewReport.PercentageInconclusive = (int)latestStats.PercentageInconclusive; viewReport.PercentageFailure = (int)latestStats.PercentageFailure; GetPreviousVersionStats(report, viewReport, latestStats); } viewReports.Add(viewReport); } return View(viewReports); }