示例#1
0
 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());
        }