@@ -34,22 +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 ) ) 
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 ) 
5152                                       where  ( wordsInSearchText . Count ( )  ==  0  ||  searchTextMatchesGroup  ||  searchTextMatchesCompetencyDescription  ||  searchTextMatchesCompetencyName ) 
52-                                            &&  ( ! appliedResponseStatusFilters . Any ( )  ||  responseStatusFilterMatchesAnyQuestion ) 
53+                                            &&  ( ! appliedResponseStatusFilters . Any ( )  ||  responseStatusFilterMatchesAll ) 
5354                                       select  c ; 
5455            } 
5556            competencies  =  filteredCompetencies ; 
@@ -111,6 +112,7 @@ public static bool IsResponseStatusFilter(int filter)
111112        { 
112113            var  responseStatusFilters  =  new  int [ ] 
113114            { 
115+                 ( int ) SelfAssessmentCompetencyFilter . Optional , 
114116                ( int ) SelfAssessmentCompetencyFilter . RequiresSelfAssessment , 
115117                ( int ) SelfAssessmentCompetencyFilter . SelfAssessed , 
116118                ( int ) SelfAssessmentCompetencyFilter . Verified , 
0 commit comments