diff --git a/Sieve/Models/SieveModel.cs b/Sieve/Models/SieveModel.cs index c17910e..9072aca 100644 --- a/Sieve/Models/SieveModel.cs +++ b/Sieve/Models/SieveModel.cs @@ -44,10 +44,7 @@ namespace Sieve.Models { Filter = subfilters + filterOpAndVal }; - if (!value.Any(f => f.Names.Any(n => filterTerm.Names.Any(n2 => n2 == n)))) - { - value.Add(filterTerm); - } + value.Add(filterTerm); } else { diff --git a/SieveUnitTests/General.cs b/SieveUnitTests/General.cs index b9dfa48..1c0ba62 100644 --- a/SieveUnitTests/General.cs +++ b/SieveUnitTests/General.cs @@ -352,6 +352,24 @@ namespace SieveUnitTests Assert.AreEqual(3, entry.Id); } + [DataTestMethod] + [DataRow("CategoryId==1,(CategoryId|LikeCount)==50")] + [DataRow("(CategoryId|LikeCount)==50,CategoryId==1")] + public void CombinedAndOrFilterIndependentOfOrder(string filter) + { + var model = new SieveModel() + { + Filters = filter, + }; + + var result = _processor.Apply(model, _posts); + var entry = result.FirstOrDefault(); + var resultCount = result.Count(); + + Assert.IsNotNull(entry); + Assert.AreEqual(1, resultCount); + } + [TestMethod] public void OrValueFilteringWorks() {