示例#1
0
        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));
        }