public static Assessment MapToAssessmentv2(this AssessmentModelv3 a)
 {
     return(new Assessment
     {
         AcademicSubjects = a.AcademicSubjects?.Select(b => b.MapToAssessmentAcademicSubjectsItem()).ToList(),
         AdaptiveAssessment = a.AdaptiveAssessment,
         AssessedGradeLevels = a.AssessedGradeLevels?.Select(b => b.MapToAssessmentAssessedGradeLevelsItem()).ToList(),
         AssessmentFamilyReference = new AssessmentAssessmentFamilyReference
         {
             Title = a.AssessmentFamily,
         },
         CategoryDescriptor = a.AssessmentCategoryDescriptor?.MapToAssessmentCategoryDescriptorv2(),
         ContentStandard = a.ContentStandard?.MapToAssessmentContentStandard(),
         EducationOrganizationReference = a.EducationOrganizationReference?.MapToAssessmentEducationOrganizationReference(),
         Form = a.AssessmentForm,
         Id = a.Id,
         IdentificationCodes = a.IdentificationCodes?.Select(b => b.MapToAssessmentIdentificationCodesItem()).ToList(),
         Identifier = a.AssessmentIdentifier,
         Languages = a.Languages?.Select(b => b.MapToAssessmentLanguagesItem()).ToList(),
         MaxRawScore = (int)a.MaxRawScore,
         NamespaceProperty = a.Namespace,
         Nomenclature = a.Nomenclature,
         PerformanceLevels = a.PerformanceLevels?.Select(b => b.MapToAssessmentPerformanceLevelsItem()).ToList(),
         PeriodDescriptor = a.Period?.AssessmentPeriodDescriptor?.MapToAssessmentPeriodDescriptorv2(),
         Programs = a.Programs?.Select(b => b.MapToAssessmentProgramsItem()).ToList(),
         RevisionDate = !string.IsNullOrWhiteSpace(a.RevisionDate)
             ? DateTime.Parse(a.RevisionDate)
             : DateTime.Parse("2000-01-01"),
         Scores = a.Scores?.Select(b => b.MapToAssessmentScoresItem()).ToList(),
         Sections = a.Sections?.Select(b => b.MapToAssessmentSectionsItem()).ToList(),
         Title = a.AssessmentTitle,
         Version = a.AssessmentVersion,
         _etag = a._etag,
     });
 }
Exemple #2
0
        public async Task <Assessment> Update(string assessmentId, Assessment assessment)
        {
            var odsApi = await _odsApiClientProvider.NewResourcesClient();

            var assessmentv3 = new AssessmentModelv3
            {
                AcademicSubjects             = assessment.AcademicSubjects?.Select(a => a.MapToAcademicSubjectDescriptorv3()),
                AdaptiveAssessment           = assessment.AdaptiveAssessment ?? false,
                AssessmentCategoryDescriptor = assessment.CategoryDescriptor?.MapToAssessmentCategoryDescriptorv3(),
                AssessmentFamily             = assessment.AssessmentFamilyReference?.Title,
                AssessmentForm       = string.IsNullOrWhiteSpace(assessment.Form) ? null : assessment.Form,
                AssessmentIdentifier = Guid.NewGuid().ToString(),
                AssessmentTitle      = assessment.Title,
                AssessmentVersion    = assessment.Version ?? 0,
                MaxRawScore          = assessment.MaxRawScore ?? 0.0,
                Namespace            = await _odsApiSettingsProvider.GetAssessmentNamespace(),
                Nomenclature         = assessment.Nomenclature,
                Period       = assessment.PeriodDescriptor?.MapToAssessmentPeriodDescriptorV3(),
                RevisionDate = assessment.RevisionDate.HasValue ? assessment.RevisionDate.MapToYYYYMMdd() : "2000-01-01",
                Scores       = assessment.Scores?.Select(a => a.MapToAssessmentScorev3()),
            };

            var response = await odsApi.Put($"assessments/{assessmentId}", assessmentv3);

            await odsApi.HandleHttpResponse(response);

            var mappedAsStandard = assessmentv3.MapToAssessmentv2();

            mappedAsStandard.Id = assessmentId;

            var cachedAssessments = await _cacheProvider.GetOrDefault <IList <Assessment> >(CacheKeys.Assessments);

            if (cachedAssessments != null)
            {
                cachedAssessments = cachedAssessments
                                    .Where(i => i.Id != assessmentId)
                                    .ToList();

                cachedAssessments.Add(mappedAsStandard);

                await _cacheProvider.TrySet(CacheKeys.Assessments, cachedAssessments);
            }

            return(mappedAsStandard);
        }