public async Task <StudentAssessment> CreateAssociation(ScoringAssessmentPostBody body) { var ods = await _odsApiClientProvider.NewResourcesClient(); var assessment = await ods.Get <Assessment>($"assessments/{body.AssessmentId}"); var studentAssessment = new StudentAssessment { AdministrationDate = DateTime.Parse(body.AdministrationDate), AdministrationEndDate = DateTime.Parse(body.AdministrationDate), // TODO Set AdministrationEndDate AssessmentReference = new StudentAssessmentAssessmentReference { Identifier = assessment.Identifier, NamespaceProperty = assessment.NamespaceProperty, }, StudentReference = new StudentAssessmentStudentReference { StudentUniqueId = body.StudentUniqueId, }, Accommodations = new List <StudentAssessmentAccommodationsItem>(), AdministrationEnvironmentType = null, AdministrationLanguageDescriptor = null, EventCircumstanceType = null, EventDescription = null, Id = "", Identifier = Guid.NewGuid().ToString(), Items = new List <StudentAssessmentItemsItem>(), PerformanceLevels = new List <StudentAssessmentPerformanceLevelsItem>(), ReasonNotTestedType = null, RetestIndicatorType = null, ScoreResults = new List <StudentAssessmentScoreResultsItem> // At least one score result is needed for frontend scoring assessments grid { new StudentAssessmentScoreResultsItem { AssessmentReportingMethodType = assessment.Scores == null || assessment.Scores.Count == 0 ? "Raw score" : assessment.Scores.First().AssessmentReportingMethodType, ResultDatatypeType = assessment.Scores == null || assessment.Scores.Count == 0 ? "Integer" : assessment.Scores.First().ResultDatatypeType, Result = "---", }, }, SerialNumber = null, StudentObjectiveAssessments = new List <StudentAssessmentStudentObjectiveAssessmentsItem>(), WhenAssessedGradeLevelDescriptor = await GetStudentGradeLevelDescriptor(body.StudentUniqueId), }; var response = await ods.Post("studentAssessments", studentAssessment); await ods.HandleHttpResponse(response); return(studentAssessment); }
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()); }
public async Task <StudentAssessment> CreateAssociation([FromBody] ScoringAssessmentPostBody body) { return(await ScoringAssessmentsService.CreateAssociation(body)); }