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, }); }
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); }