Ejemplo n.º 1
0
        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));
 }