Beispiel #1
0
        private static void UpdateRequirementsFilterDropdownOptionsVisibility(SearchSelfAssessmentOvervieviewViewModel search, IEnumerable <Competency> competencies)
        {
            var filteredQuestions = competencies.SelectMany(c => c.AssessmentQuestions);

            if (search != null)
            {
                search.AnyQuestionMeetingRequirements          = filteredQuestions.Any(q => q.ResultRAG == 3);
                search.AnyQuestionPartiallyMeetingRequirements = filteredQuestions.Any(q => q.ResultRAG == 2);
                search.AnyQuestionNotMeetingRequirements       = filteredQuestions.Any(q => q.ResultRAG == 1);
            }
        }
Beispiel #2
0
        private static void ApplyCompetencyGroupFilters(ref IEnumerable <Competency> competencies, SearchSelfAssessmentOvervieviewViewModel search)
        {
            var filteredCompetencies          = competencies;
            var appliedCompetencyGroupFilters = search.AppliedFilters?.Select(f => int.Parse(f.FilterValue)).Where(f => IsCompetencyFlagFilter(f)) ?? Enumerable.Empty <int>();

            if (appliedCompetencyGroupFilters.Any())
            {
                filteredCompetencies = competencies.Where(c => c.CompetencyFlags.Any(f => appliedCompetencyGroupFilters.Contains(f.FlagId)));
            }
            competencies = filteredCompetencies;
        }
Beispiel #3
0
        public static IEnumerable <Competency> FilterCompetencies(IEnumerable <Competency> competencies, IEnumerable <Data.Models.Frameworks.CompetencyFlag> competencyFlags, SearchSelfAssessmentOvervieviewViewModel search)
        {
            var filteredCompetencies = competencies;

            if (search != null)
            {
                var searchText = search.SearchText?.Trim() ?? string.Empty;
                var filters    = search.AppliedFilters?.Select(f => int.Parse(f.FilterValue)) ?? Enumerable.Empty <int>();
                search.CompetencyFlags = competencyFlags.ToList();
                ApplyResponseStatusFilters(ref filteredCompetencies, filters, searchText);
                UpdateRequirementsFilterDropdownOptionsVisibility(search, filteredCompetencies);
                ApplyRequirementsFilters(ref filteredCompetencies, filters);

                foreach (var competency in filteredCompetencies)
                {
                    competency.CompetencyFlags = search.CompetencyFlags.Where(f => f.CompetencyId == competency.Id);
                }

                ApplyCompetencyGroupFilters(ref filteredCompetencies, search);
            }
            return(filteredCompetencies);
        }