private async Task <IEnumerable <ScoringAssessmentDTO> > FilterByNamespace(IEnumerable <ScoringAssessmentDTO> scorings, bool onlyFromCurrentNamespace) { var currentNamespace = await _odsApiSettingsProvider.GetAssessmentNamespace(); return(scorings.Select(scoring => { scoring.Associations = scoring.Associations .Where(assoc => { return onlyFromCurrentNamespace ? assoc.Assessment.NamespaceProperty == currentNamespace : assoc.Assessment.NamespaceProperty != currentNamespace; }).ToList(); return scoring; }).ToList()); }
public async Task <Assessment> Create(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 postAssessmentResponse = await odsApi.Post("assessments", assessmentv3); var createdAssessmentId = await odsApi.HandleHttpResponseGetCreatedResourceId(postAssessmentResponse); var createdAssessment = await odsApi.Get <AssessmentModelv3>($"assessments/{createdAssessmentId}"); var createdAssessmentv2 = createdAssessment.MapToAssessmentv2(); var cachedAssessments = await _cacheProvider.GetOrDefault <IList <Assessment> >(CacheKeys.Assessments); if (cachedAssessments != null) { cachedAssessments.Add(createdAssessmentv2); cachedAssessments = cachedAssessments .OrderBy(a => a.Title) .ToList(); await _cacheProvider.TrySet(CacheKeys.Assessments, cachedAssessments); } return(createdAssessmentv2); }
public async Task <Assessment> Create(Assessment assessment) { assessment.Identifier = Guid.NewGuid().ToString(); assessment.NamespaceProperty = await _odsApiSettingsProvider.GetAssessmentNamespace(); var ods = await _odsApiClientProvider.NewResourcesClient(); var response = await ods.Post("assessments", assessment); var createdAssessmentId = await ods.HandleHttpResponseGetCreatedResourceId(response); var createdAssessment = await ods.Get <Assessment>($"assessments/{createdAssessmentId}"); var cachedAssessments = await _cacheProvider.Get <IList <Assessment> >(CacheKeys.Assessments); cachedAssessments.Add(createdAssessment); await _cacheProvider.TrySet(CacheKeys.Assessments, cachedAssessments); return(createdAssessment); }