Skip to content

Commit 593a67b

Browse files
committed
TD-4325 Changes to logic have filters working with one another
1 parent 3ddf3a2 commit 593a67b

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

DigitalLearningSolutions.Web/Helpers/CompetencyFilterHelper.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)