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