@@ -34,23 +34,23 @@ private static void ApplyResponseStatusFilters(ref IEnumerable<Competency> compe
3434 {
3535 var filteredCompetencies = competencies ;
3636 var appliedResponseStatusFilters = filters . Where ( f => IsResponseStatusFilter ( f ) ) ;
37+
3738 if ( appliedResponseStatusFilters . Any ( ) || searchText . Length > 0 )
3839 {
3940 var wordsInSearchText = searchText . Split ( ) . Where ( w => w != string . Empty ) ;
40- filters = appliedResponseStatusFilters ;
4141 filteredCompetencies = from c in competencies
4242 let searchTextMatchesGroup = wordsInSearchText . All ( w => c . CompetencyGroup ? . Contains ( w , StringComparison . CurrentCultureIgnoreCase ) ?? false )
4343 let searchTextMatchesCompetencyDescription = wordsInSearchText . All ( w => c . Description ? . Contains ( w , StringComparison . CurrentCultureIgnoreCase ) ?? false )
4444 let searchTextMatchesCompetencyName = wordsInSearchText . All ( w => c . Name ? . Contains ( w , StringComparison . CurrentCultureIgnoreCase ) ?? false )
45- let responseStatusFilterMatchesAnyQuestion =
46- ( filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . RequiresSelfAssessment ) && c . AssessmentQuestions . Any ( q => q . ResultId == null ) )
47- || ( filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . SelfAssessed ) && c . AssessmentQuestions . Any ( q => q . ResultId != null && q . Requested == null && q . SignedOff == null ) )
48- || ( filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . ConfirmationRequested ) && c . AssessmentQuestions . Any ( q => q . Verified == null && q . Requested != null ) )
49- || ( filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . ConfirmationRejected ) && c . AssessmentQuestions . Any ( q => q . Verified . HasValue && q . SignedOff != true ) )
50- || ( filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . Verified ) && c . AssessmentQuestions . Any ( q => q . Verified . HasValue && q . SignedOff == true ) )
51- || ( filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . Optional ) && c . Optional )
45+ let responseStatusFilterMatchesAll =
46+ ( ! filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . RequiresSelfAssessment ) || c . AssessmentQuestions . Any ( q => q . ResultId == null ) )
47+ && ( ! filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . SelfAssessed ) || c . AssessmentQuestions . Any ( q => q . ResultId != null && q . Requested == null && q . SignedOff == null ) )
48+ && ( ! filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . ConfirmationRequested ) || c . AssessmentQuestions . Any ( q => q . Verified == null && q . Requested != null ) )
49+ && ( ! filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . ConfirmationRejected ) || c . AssessmentQuestions . Any ( q => q . Verified . HasValue && q . SignedOff != true ) )
50+ && ( ! filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . Verified ) || c . AssessmentQuestions . Any ( q => q . Verified . HasValue && q . SignedOff == true ) )
51+ && ( ! filters . Contains ( ( int ) SelfAssessmentCompetencyFilter . Optional ) || c . Optional )
5252 where ( wordsInSearchText . Count ( ) == 0 || searchTextMatchesGroup || searchTextMatchesCompetencyDescription || searchTextMatchesCompetencyName )
53- && ( ! appliedResponseStatusFilters . Any ( ) || responseStatusFilterMatchesAnyQuestion )
53+ && ( ! appliedResponseStatusFilters . Any ( ) || responseStatusFilterMatchesAll )
5454 select c ;
5555 }
5656 competencies = filteredCompetencies ;
0 commit comments