Skip to content

Commit d5669a2

Browse files
committed
Update ExpressionBuilder.cs
1 parent f8d7fa5 commit d5669a2

1 file changed

Lines changed: 15 additions & 34 deletions

File tree

src/GraphQL.EntityFramework/Where/ExpressionBuilder.cs

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@ public static Expression<Func<T, bool>> BuildPredicate(IEnumerable<WhereExpressi
1515
return Expression.Lambda<Func<T, bool>>(expressionBody, param);
1616
}
1717

18-
/// <summary>
19-
/// Makes the predicate body from the supplied parameter and list of where expressions
20-
/// </summary>
21-
private static Expression MakePredicateBody(IEnumerable<WhereExpression> wheres)
18+
static Expression MakePredicateBody(IEnumerable<WhereExpression> wheres)
2219
{
2320
Expression? mainExpression = null;
2421
var previousWhere = new WhereExpression();
@@ -78,9 +75,6 @@ public static Expression<Func<T, bool>> BuildPredicate(string path, Comparison c
7875
return Expression.Lambda<Func<T, bool>>(expressionBody, param);
7976
}
8077

81-
/// <summary>
82-
/// Makes the predicate body from the single set of supplied conditional arguments
83-
/// </summary>
8478
static Expression MakePredicateBody(string path, Comparison comparison, string?[]? values, bool negate, StringComparison? stringComparison)
8579
{
8680
Expression expressionBody;
@@ -202,13 +196,11 @@ static Expression MakeStringListInComparison(string[] values, Property<T> proper
202196
{
203197
MethodCallExpression equalsBody;
204198

205-
// If string comparison not provided
206199
if (comparison is null)
207200
{
208201
// Do basic string compare
209202
equalsBody = Expression.Call(null, ReflectionCache.StringEqual, ExpressionCache.StringParam, property.Left);
210203
}
211-
// Otherwise
212204
else
213205
{
214206
// String comparison with comparison type value
@@ -277,38 +269,27 @@ static Expression MakeSingleObjectComparison(Comparison comparison, object? valu
277269
var left = property.Left;
278270
var constant = Expression.Constant(value, left.Type);
279271

280-
switch (comparison)
272+
return comparison switch
281273
{
282-
case Comparison.Equal:
283-
return Expression.MakeBinary(ExpressionType.Equal, left, constant);
284-
case Comparison.GreaterThan:
285-
return Expression.MakeBinary(ExpressionType.GreaterThan, left, constant);
286-
case Comparison.GreaterThanOrEqual:
287-
return Expression.MakeBinary(ExpressionType.GreaterThanOrEqual, left, constant);
288-
case Comparison.LessThan:
289-
return Expression.MakeBinary(ExpressionType.LessThan, left, constant);
290-
case Comparison.LessThanOrEqual:
291-
return Expression.MakeBinary(ExpressionType.LessThanOrEqual, left, constant);
292-
}
293-
294-
throw new($"Invalid comparison operator '{comparison}'.");
274+
Comparison.Equal => Expression.MakeBinary(ExpressionType.Equal, left, constant),
275+
Comparison.GreaterThan => Expression.MakeBinary(ExpressionType.GreaterThan, left, constant),
276+
Comparison.GreaterThanOrEqual => Expression.MakeBinary(ExpressionType.GreaterThanOrEqual, left, constant),
277+
Comparison.LessThan => Expression.MakeBinary(ExpressionType.LessThan, left, constant),
278+
Comparison.LessThanOrEqual => Expression.MakeBinary(ExpressionType.LessThanOrEqual, left, constant),
279+
_ => throw new($"Invalid comparison operator '{comparison}'.")
280+
};
295281
}
296282

297283
static bool HasListPropertyInPath(string path) =>
298284
Regex.IsMatch(path, listPropertyPattern);
299285

300-
static Expression CombineExpressions(Connector connector, Expression expr1, Expression expr2)
301-
{
302-
switch (connector)
286+
static Expression CombineExpressions(Connector connector, Expression expr1, Expression expr2) =>
287+
connector switch
303288
{
304-
case Connector.And:
305-
return Expression.AndAlso(expr1, expr2);
306-
case Connector.Or:
307-
return Expression.OrElse(expr1, expr2);
308-
}
309-
310-
throw new($"Invalid connector operator '{connector}'.");
311-
}
289+
Connector.And => Expression.AndAlso(expr1, expr2),
290+
Connector.Or => Expression.OrElse(expr1, expr2),
291+
_ => throw new($"Invalid connector operator '{connector}'.")
292+
};
312293

313294
static Expression NegateExpression(Expression expression) =>
314295
Expression.Not(expression);

0 commit comments

Comments
 (0)