private Assessment FillNotTakenassessment(string title, List <string> assessmentIdentifiers, string shortDescription) { var assessment = new Assessment { Title = title, ShortDescription = shortDescription, MaxRawScore = 0, SubSections = FillNotTakenSubsections(assessmentIdentifiers, new List <AssessmentSubSection>()) }; return(assessment); }
public async Task <StudentAssessment> GetStudentAssessmentsAsync(int studentUsi) { var model = new StudentAssessment(); foreach (var assessmentParam in _customParametersProvider.GetParameters().assessments) { var assessment = await GetStudentAssessmentAsync(studentUsi, assessmentParam.assessmentReportingMethodTypeDescriptor, assessmentParam.title, assessmentParam.assessmentIdentifiers, assessmentParam.shortDescription); if (assessment != null) { assessment.SubSections = FillNotTakenSubsections(assessmentParam.assessmentIdentifiers, assessment.SubSections); } else // Add default empty ones { // Student hasnt taken assessment assessment = FillNotTakenassessment(assessmentParam.title, assessmentParam.assessmentIdentifiers, assessmentParam.shortDescription); } assessment.ExternalLink = assessmentParam.externalLink; model.Assessments.Add(assessment); } var customparams = _customParametersProvider.GetParameters(); model.AssessmentIndicators = new List <Assessment>(); model.StarAssessments = new List <Assessment>(); model.AccessAssessments = new List <Assessment>(); foreach (var assessment in customparams.arcAssessments) { if (assessment.assessmentReportingMethodTypeDescriptor == "ARC Power Goal Abbreviation") { var performanceLevel = await _studentRepository.GetStudentAssesmentPerformanceLevel(studentUsi, assessment.assessmentReportingMethodTypeDescriptor, assessment.title); if (performanceLevel == null) { performanceLevel = new Assessment(); performanceLevel.Title = assessment.title; performanceLevel.Result = "-"; performanceLevel.PerformanceLevelMet = "Not Yet Taken"; performanceLevel.ReportingMethodCodeValue = assessment.assessmentReportingMethodTypeDescriptor; } else { performanceLevel.Result = performanceLevel.PerformanceLevelMet; } model.ArcAssessments.Add(performanceLevel); } else { var newAssessment = await _studentRepository.GetStudentAssesmentScore(studentUsi, assessment.assessmentReportingMethodTypeDescriptor, assessment.title); var objectivesAssessments = await _studentRepository.GetStudentObjectiveAssessments(studentUsi); if (newAssessment == null) { newAssessment = new Assessment(); newAssessment.Title = assessment.title; newAssessment.Result = "-"; newAssessment.PerformanceLevelMet = "Not Yet Taken"; newAssessment.ReportingMethodCodeValue = assessment.assessmentReportingMethodTypeDescriptor; } else { newAssessment.ObjectiveAssessments = objectivesAssessments.Where(x => x.AssessmentIdentifier == newAssessment.Identifier).ToList(); } model.ArcAssessments.Add(newAssessment); } } foreach (var assessment in customparams.assessmentIndicators) { var newAssessment = new Assessment(); if (assessment.getPerformanceLevel) { newAssessment = await _studentRepository.GetStudentAssesmentPerformanceLevel(studentUsi, assessment.assessmentReportingMethodTypeDescriptor, assessment.title); } else { newAssessment = await _studentRepository.GetStudentAssesmentScore(studentUsi, assessment.assessmentReportingMethodTypeDescriptor, assessment.title); } if (newAssessment == null) { newAssessment = new Assessment(); newAssessment.Title = assessment.title; newAssessment.Result = "0"; newAssessment.PerformanceLevelMet = "Not Yet Taken"; newAssessment.ReportingMethodCodeValue = assessment.assessmentReportingMethodTypeDescriptor; newAssessment.Interpretation = ""; } else if (assessment.getPerformanceLevel) { newAssessment.Interpretation = InterpretAssessmentPerformanceLevel(newAssessment.PerformanceLevelMet); } else { newAssessment.Interpretation = ""; } model.AssessmentIndicators.Add(newAssessment); } foreach (var assessment in customparams.starAssessments) { var newAssessment = await _studentRepository.GetStudentAssesmentScore(studentUsi, assessment.assessmentReportingMethodTypeDescriptor, assessment.title); var performanceLevel = await _studentRepository.GetStudentAssesmentPerformanceLevel(studentUsi, assessment.assessmentReportingMethodTypeDescriptor, assessment.title); if (newAssessment == null) { newAssessment = new Assessment(); newAssessment.Title = assessment.title; newAssessment.Result = "0"; newAssessment.PerformanceLevelMet = "Not Yet Taken"; newAssessment.ReportingMethodCodeValue = assessment.assessmentReportingMethodTypeDescriptor; newAssessment.Interpretation = ""; } if (performanceLevel != null) { newAssessment.Interpretation = InterpretAssessmentPerformanceLevel(performanceLevel.PerformanceLevelMet); newAssessment.PerformanceLevelMet = performanceLevel.PerformanceLevelMet; } model.StarAssessments.Add(newAssessment); } foreach (var assessment in customparams.accessAssessments) { var assessments = await _studentRepository.GetACCESSStudentAssesmentScore(studentUsi, assessment.assessmentReportingMethodTypeDescriptor, assessment.title); var objectivesAssessments = await _studentRepository.GetStudentObjectiveAssessments(studentUsi); var proficiencyAssessments = await _studentRepository.GetACCESSStudentAssesmentScore(studentUsi, assessment.assessmentReportingMethodTypeDescriptorProficiency, assessment.title); //if (assessments.Count == proficiencyAssessments.Count) // foreach (var a in assessments) // a.ProficiencyLevel = proficiencyAssessments[assessments.FindIndex(x => x.Title == a.Title && x.ReportingMethodCodeValue == a.ReportingMethodCodeValue && x.Version == a.Version)].Result; foreach (var item in assessments) { item.ObjectiveAssessments = objectivesAssessments.Where(x => x.AssessmentIdentifier == item.Identifier).ToList(); } model.AccessAssessments.AddRange(assessments); } return(model); }