Selaa lähdekoodia

Fixed bug in filter combining

Kenric Nugteren 1 vuosi sitten
vanhempi
commit
64c4976608
1 muutettua tiedostoa jossa 20 lisäystä ja 9 poistoa
  1. 20 9
      InABox.Core/Filter.cs

+ 20 - 9
InABox.Core/Filter.cs

@@ -1824,19 +1824,30 @@ namespace InABox.Core
 
         public Filter<T>? Combine()
         {
-            Filter<T>? result = null;
-            foreach (var filter in filters)
+            if(filters.Count == 0)
+            {
+                return null;
+            }
+            else if(filters.Count == 1)
             {
-                if (filter != null)
+                return filters[0];
+            }
+            else
+            {
+                var result = new Filter<T>().All();
+                foreach (var filter in filters)
                 {
-                    if (result is null)
-                        result = filter;
-                    else
-                        result.Ands.Add(filter);
+                    if (filter != null)
+                    {
+                        if (result is null)
+                            result = filter;
+                        else
+                            result.Ands.Add(filter);
+                    }
                 }
-            }
 
-            return result;
+                return result;
+            }
         }
 
         public static Filter<T>? Combine(params Filter<T>[] filters)