public IActionResult Detail(int?id) { var category = id.HasValue ? CategoryService.GetCategory(id.Value):null; if (category != null) { var tests = TestService.GetTestsByCategory(category); var viewModel = new CategoryTestsViewModel() { Category = category, Tests = tests }; return(View(viewModel)); } return(NotFound()); }
public IActionResult CategoryTests(Guid id, Guid categoryID) { var progress = _database.ScorecardsInProgress.Find(id); var tests = _database.ScorecardTests.Where(t => t.CategoryID == categoryID && t.ScorecardID == progress.ScorecardID).ToList(); var results = new List <ScorecardTestResultModel>(); tests.ForEach(t => { results.Add(new ScorecardTestResultModel { ProgressID = progress.ID, TestID = t.ID, Notes = "", Passed = null }); }); var existingResults = progress.GetResults(); existingResults.ForEach(r => { var result = results.FirstOrDefault(t => t.TestID == r.TestID); if (result != null) { result.Passed = r.Passed; result.Notes = r.Notes; } }); var viewModel = new CategoryTestsViewModel { ProgressID = progress.ID, ScorecardID = progress.ScorecardID, ScorecardName = _database.Scorecards.FirstOrDefault(sc => sc.ID == progress.ScorecardID).Name, CategoryName = _database.Categories.FirstOrDefault(c => c.ID == categoryID).Name, Tests = tests, TestResults = results }; return(View(viewModel)); }