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());
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }