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