@@ -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