public static StudentAssessment MapToStudentAssessmentv2(this StudentAssessmentv3 a) { return(new StudentAssessment { Accommodations = a.Accomodations?.Select(b => b.MapToStudentAssessmentAccommodationsItem()).ToList(), AdministrationDate = a.AdministrationDate.MapToDateTime(), AdministrationEndDate = a.AdministrationEndDate?.MapToDateTime(), AdministrationEnvironmentType = a.AdministrationEnvironmentDescriptor?.MapToAdministrationEnvironmentDescriptorv2(), AdministrationLanguageDescriptor = a.AdministrationLanguageDescriptor?.MapToAdministrationLanguageDescriptorv2(), AssessmentReference = a.AssessmentReference?.MapToStudentAssessmentAssessmentReference(), EventCircumstanceType = a.EventCircumstanceDescriptor?.MapToEventCircumstanceDescriptorv2(), EventDescription = a.EventDescriptor, Id = a.Id, Identifier = a.StudentAssessmentIdentifier, Items = a.Items?.Select(b => b.MapToStudentAssessmentItemsItem()).ToList(), PerformanceLevels = a.PerformanceLevels?.Select(b => b.MapToStudentAssessmentPerformanceLevelsItem()).ToList(), ReasonNotTestedType = a.ReasonNotTestedDescriptor?.MapToReasonNotTestedDescriptorv2(), RetestIndicatorType = a.RetestIndicatorDescriptor?.MapToRetestIndicatorDescriptorv2(), ScoreResults = a.ScoreResults?.Select(b => b.MapToStudentAssessmentScoreResultsItem()).ToList(), SerialNumber = a.SerialNumber, StudentObjectiveAssessments = a.StudentObjectiveAssessments?.Select(b => b.MapToStudentAssessmentStudentObjectiveAssessmentsItem()).ToList(), StudentReference = new StudentAssessmentStudentReference { Link = new StudentAssessmentStudentReferenceLink { Href = a.StudentReference?.Link?.Href, Rel = a.StudentReference?.Link?.Rel, }, StudentUniqueId = a.StudentReference?.StudentUniqueId, }, // TODO Check WhenAssessedGradeLevelDescriptor = a.WhenAssessedGradeLevelDescriptor?.MapToWhenAssessedGradeLevelDescriptorv2(), _etag = a._etag, }); }
public async Task <StudentAssessment> CreateAssociation(ScoringAssessmentPostBody body) { var odsApi = await _odsApiClientProvider.NewResourcesClient(); var assessmentv3 = await odsApi.Get <AssessmentModelv3>($"assessments/{body.AssessmentId}"); IEnumerable <StudentAssessmentScoreResultv3> createStudentAssessmentScoreResultsv3() { var score = assessmentv3.Scores?.FirstOrDefault(); return(new List <StudentAssessmentScoreResultv3> { new StudentAssessmentScoreResultv3 { AssessmentReportingMethodDescriptor = score != null ? score.AssessmentReportingMethodDescriptor : "Raw Score".MapToAssessmentReportingMethodDescriptorv3(), Result = "---", ResultDatatypeTypeDescriptor = score != null ? score.ResultDatatypeTypeDescriptor : "Integer".MapToAssessmentReportingMethodDescriptorv3(), }, }); } var studentAssessmentv3 = new StudentAssessmentv3 { Accomodations = new List <StudentAssessmentAccommodationv3>(), AdministrationDate = DateTime.Parse(body.AdministrationDate).MapToYYYYMMdd(), AdministrationEndDate = DateTime.Parse(body.AdministrationDate).MapToYYYYMMdd(), AdministrationEnvironmentDescriptor = null, AdministrationLanguageDescriptor = null, AssessmentReference = new AssessmentReferencev3 { AssessmentIdentifier = assessmentv3.AssessmentIdentifier, Namespace = assessmentv3.Namespace, }, EventCircumstanceDescriptor = null, EventDescriptor = null, Id = null, Items = new List <StudentAssessmentItemv3>(), PerformanceLevels = new List <StudentAssessmentPerformanceLevelv3>(), PlatformTypeDescriptor = null, ReasonNotTestedDescriptor = null, RetestIndicatorDescriptor = null, SchoolYearReferenceType = null, ScoreResults = createStudentAssessmentScoreResultsv3(), // At least one score result is needed for the frontend scoring assessments grid SerialNumber = null, StudentAssessmentIdentifier = Guid.NewGuid().ToString(), StudentObjectiveAssessments = new List <StudentAssessmentStudentObjectiveAssessmentv3>(), StudentReference = new StudentReferencev3 { StudentUniqueId = body.StudentUniqueId, }, WhenAssessedGradeLevelDescriptor = await GetStudentGradeLevelDescriptor(body.StudentUniqueId), _etag = null, }; var response = await odsApi.Post("studentAssessments", studentAssessmentv3); var createdStudentAssessmentId = await odsApi.HandleHttpResponseGetCreatedResourceId(response); var createdStudentAssessmentv3 = await odsApi.Get <StudentAssessmentv3>($"studentAssessments/{createdStudentAssessmentId}"); return(createdStudentAssessmentv3.MapToStudentAssessmentv2()); }