public void SelfAssessmentOverview_Should_Have_Previous_Competency_Number_One_When_Empty()
        {
            // Given
            var selfAssessment     = SelfAssessmentHelper.CreateDefaultSelfAssessment();
            var competencies       = new List <Competency>();
            var supervisorSignOffs = new List <SupervisorSignOff>();
            var expectedModel      = new SelfAssessmentOverviewViewModel
            {
                SelfAssessment                    = selfAssessment,
                CompetencyGroups                  = competencies.GroupBy(competency => competency.CompetencyGroup),
                PreviousCompetencyNumber          = 1,
                SupervisorSignOffs                = supervisorSignOffs,
                SearchViewModel                   = new SearchSelfAssessmentOvervieviewViewModel(null, SelfAssessmentId, selfAssessment.Vocabulary, false, false, null),
                AllQuestionsVerifiedOrNotRequired = true
            };

            A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId))
            .Returns(selfAssessment);
            A.CallTo(() => selfAssessmentService.GetMostRecentResults(selfAssessment.Id, CandidateId))
            .Returns(competencies);

            // When
            var result = controller.SelfAssessmentOverview(SelfAssessmentId, selfAssessment.Vocabulary);

            // Then
            result.Should().BeViewResult()
            .WithViewName("SelfAssessments/SelfAssessmentOverview")
            .Model.Should().BeEquivalentTo(expectedModel);
        }
Exemple #2
0
        public void SelfAssessmentOverview_Should_Return_View()
        {
            // Given
            var selfAssessment = SelfAssessmentHelper.CreateDefaultSelfAssessment();
            var competencies   = new List <Competency>
            {
                new Competency {
                    CompetencyGroup = "A"
                },
                new Competency {
                    CompetencyGroup = "A"
                },
            };
            var supervisorSignOffs = new List <SupervisorSignOff>();
            var expectedModel      = new SelfAssessmentOverviewViewModel
            {
                SelfAssessment           = selfAssessment,
                CompetencyGroups         = competencies.GroupBy(competency => competency.CompetencyGroup),
                PreviousCompetencyNumber = 2,
                SupervisorSignOffs       = supervisorSignOffs,
            };

            A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId))
            .Returns(selfAssessment);
            A.CallTo(() => selfAssessmentService.GetMostRecentResults(selfAssessment.Id, CandidateId))
            .Returns(competencies);

            // When
            var result = controller.SelfAssessmentOverview(SelfAssessmentId, selfAssessment.Vocabulary);

            // Then
            result.Should().BeViewResult()
            .WithViewName("SelfAssessments/SelfAssessmentOverview")
            .Model.Should().BeEquivalentTo(expectedModel);
        }
Exemple #3
0
        public IActionResult SelfAssessmentOverview(
            int selfAssessmentId,
            string vocabulary,
            int?competencyGroupId = null
            )
        {
            var candidateId = User.GetCandidateIdKnownNotNull();
            var destUrl     = $"/LearningPortal/SelfAssessment/{selfAssessmentId}/{vocabulary}";

            selfAssessmentService.SetBookmark(selfAssessmentId, candidateId, destUrl);
            var assessment = selfAssessmentService.GetSelfAssessmentForCandidateById(candidateId, selfAssessmentId);

            if (assessment == null)
            {
                logger.LogWarning(
                    $"Attempt to display self assessment overview for candidate {candidateId} with no self assessment"
                    );
                return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 }));
            }

            var optionalCompetencies =
                selfAssessmentService.GetCandidateAssessmentOptionalCompetencies(selfAssessmentId, candidateId);

            selfAssessmentService.UpdateLastAccessed(assessment.Id, candidateId);
            var supervisorSignOffs =
                selfAssessmentService.GetSupervisorSignOffsForCandidateAssessment(selfAssessmentId, candidateId);
            var competencies = selfAssessmentService.GetMostRecentResults(assessment.Id, candidateId).ToList();

            foreach (var competency in competencies)
            {
                competency.QuestionLabel = assessment.QuestionLabel;
                foreach (var assessmentQuestion in competency.AssessmentQuestions)
                {
                    if (assessmentQuestion.AssessmentQuestionInputTypeID != 2)
                    {
                        assessmentQuestion.LevelDescriptors = selfAssessmentService
                                                              .GetLevelDescriptorsForAssessmentQuestion(
                            assessmentQuestion.Id,
                            assessmentQuestion.MinValue,
                            assessmentQuestion.MaxValue,
                            assessmentQuestion.MinValue == 0
                            ).ToList();
                    }
                }
            }

            var model = new SelfAssessmentOverviewViewModel
            {
                SelfAssessment               = assessment,
                CompetencyGroups             = competencies.GroupBy(competency => competency.CompetencyGroup),
                PreviousCompetencyNumber     = Math.Max(competencies.Count(), 1),
                NumberOfOptionalCompetencies = optionalCompetencies.Count(),
                SupervisorSignOffs           = supervisorSignOffs,
            };

            ViewBag.SupervisorSelfAssessmentReview = assessment.SupervisorSelfAssessmentReview;
            return(View("SelfAssessments/SelfAssessmentOverview", model));
        }