From 8510c6324263ef38a5f353d282c983b1a27bb75d Mon Sep 17 00:00:00 2001 From: Christof Senn Date: Wed, 20 Dec 2023 22:38:55 +0100 Subject: [PATCH] use pattern expression --- .../EntityFrameworkExpressionExecutor`1.cs | 2 +- .../EntityFrameworkCoreExpressionExecutor`1.cs | 2 +- .../Converters/VariableQueryArgumentListConverter.cs | 6 +++--- .../Converters/VariableQueryArgumentListConverter.cs | 6 +++--- src/Remote.Linq/Async/AsyncQueryableExtensions.cs | 2 +- src/Remote.Linq/DynamicQuery/DynamicResultMapper.cs | 6 +++--- src/Remote.Linq/DynamicQuery/ExpressionHelper.cs | 2 +- src/Remote.Linq/Expressions/LambdaExpression.cs | 2 +- .../Include/SystemIncludeExpressionReWriter.cs | 2 +- src/Remote.Linq/SimpleQuery/Query.cs | 12 ++++++------ ...provided_for_every_synchronous_query_operation.cs | 2 +- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Remote.Linq.EntityFramework/ExpressionExecution/EntityFrameworkExpressionExecutor`1.cs b/src/Remote.Linq.EntityFramework/ExpressionExecution/EntityFrameworkExpressionExecutor`1.cs index f29782d8..1db6e007 100644 --- a/src/Remote.Linq.EntityFramework/ExpressionExecution/EntityFrameworkExpressionExecutor`1.cs +++ b/src/Remote.Linq.EntityFramework/ExpressionExecution/EntityFrameworkExpressionExecutor`1.cs @@ -73,7 +73,7 @@ protected override SystemLinq.Expression PrepareAsyncQuery(SystemLinq.Expression .ToArray(); } - if (resultType.Length != 1) + if (resultType.Length is not 1) { throw new RemoteLinqException($"Failed to retrieve the result type for async query result {task.GetType()}"); } diff --git a/src/Remote.Linq.EntityFrameworkCore/ExpressionExecution/EntityFrameworkCoreExpressionExecutor`1.cs b/src/Remote.Linq.EntityFrameworkCore/ExpressionExecution/EntityFrameworkCoreExpressionExecutor`1.cs index f731ebac..08f8894b 100644 --- a/src/Remote.Linq.EntityFrameworkCore/ExpressionExecution/EntityFrameworkCoreExpressionExecutor`1.cs +++ b/src/Remote.Linq.EntityFrameworkCore/ExpressionExecution/EntityFrameworkCoreExpressionExecutor`1.cs @@ -69,7 +69,7 @@ protected override SystemLinq.Expression PrepareAsyncQuery(SystemLinq.Expression .ToArray(); } - if (resultType.Length != 1) + if (resultType.Length is not 1) { throw new RemoteLinqException($"Failed to retrieve the result type for async query result {task.GetType()}"); } diff --git a/src/Remote.Linq.Newtonsoft.Json/Converters/VariableQueryArgumentListConverter.cs b/src/Remote.Linq.Newtonsoft.Json/Converters/VariableQueryArgumentListConverter.cs index 2213656b..8a90b0ee 100644 --- a/src/Remote.Linq.Newtonsoft.Json/Converters/VariableQueryArgumentListConverter.cs +++ b/src/Remote.Linq.Newtonsoft.Json/Converters/VariableQueryArgumentListConverter.cs @@ -30,13 +30,13 @@ void SetResult(List? values = null) elementTypeInfo = reader.Read(serializer) ?? throw reader.CreateException($"{nameof(VariableQueryArgumentList.ElementType)} must not be null."); reader.Advance(); - if (reader.TokenType == JsonToken.Null) + if (reader.TokenType is JsonToken.Null) { SetResult(); return; } - if (reader.TokenType != JsonToken.StartArray) + if (reader.TokenType is not JsonToken.StartArray) { throw reader.CreateException($"Expected array"); } @@ -45,7 +45,7 @@ bool TryReadNextItem(out object? value) { if (!reader.TryRead(elementTypeInfo!, serializer, out value)) { - if (reader.TokenType == JsonToken.EndArray) + if (reader.TokenType is JsonToken.EndArray) { return false; } diff --git a/src/Remote.Linq.Text.Json/Converters/VariableQueryArgumentListConverter.cs b/src/Remote.Linq.Text.Json/Converters/VariableQueryArgumentListConverter.cs index af246331..c922873b 100644 --- a/src/Remote.Linq.Text.Json/Converters/VariableQueryArgumentListConverter.cs +++ b/src/Remote.Linq.Text.Json/Converters/VariableQueryArgumentListConverter.cs @@ -29,13 +29,13 @@ void SetResult(ref Utf8JsonReader reader, List? values = null) } reader.Advance(); - if (reader.TokenType == JsonTokenType.Null) + if (reader.TokenType is JsonTokenType.Null) { SetResult(ref reader); return; } - if (reader.TokenType != JsonTokenType.StartArray) + if (reader.TokenType is not JsonTokenType.StartArray) { throw reader.CreateException($"Expected array"); } @@ -44,7 +44,7 @@ bool TryReadNextItem(ref Utf8JsonReader reader, out object? value) { if (!reader.TryRead(elementTypeInfo, options, out value)) { - if (reader.TokenType == JsonTokenType.EndArray) + if (reader.TokenType is JsonTokenType.EndArray) { return false; } diff --git a/src/Remote.Linq/Async/AsyncQueryableExtensions.cs b/src/Remote.Linq/Async/AsyncQueryableExtensions.cs index b454846a..209f7c8c 100644 --- a/src/Remote.Linq/Async/AsyncQueryableExtensions.cs +++ b/src/Remote.Linq/Async/AsyncQueryableExtensions.cs @@ -421,7 +421,7 @@ private static async ValueTask ExecuteAsync(System.Re throw new RemoteLinqException("Implementation error: expected closed generic method definition."); } - method = genericArgumentCount == 2 + method = genericArgumentCount is 2 ? method.MakeGenericMethod(typeof(TSource), typeof(TResult)) : method.MakeGenericMethod(typeof(TSource)); } diff --git a/src/Remote.Linq/DynamicQuery/DynamicResultMapper.cs b/src/Remote.Linq/DynamicQuery/DynamicResultMapper.cs index 24adfba6..1645eab8 100644 --- a/src/Remote.Linq/DynamicQuery/DynamicResultMapper.cs +++ b/src/Remote.Linq/DynamicQuery/DynamicResultMapper.cs @@ -67,12 +67,12 @@ internal static TResult MapToType(DynamicObject? dataRecords, IDynamicO { // handle special case of single item query from too small or too large result set. var properties = dataRecords.Properties; - if (properties?.Count == 1) + if (properties?.Count is 1) { var p = properties.Single(); if (string.IsNullOrEmpty(p.Name) && p.Value is object[] objectArray) { - if (objectArray.Length == 0) + if (objectArray.Length is 0) { return Enumerable.Empty(); } @@ -91,7 +91,7 @@ internal static TResult MapToType(DynamicObject? dataRecords, IDynamicO [return: MaybeNull] internal static TResult MapToSingleResult(Type elementType, System.Collections.IEnumerable result, MethodCallExpression methodCallExpression) { - var hasPredicate = methodCallExpression.Arguments.Count == 2; + var hasPredicate = methodCallExpression.Arguments.Count is 2; var arguments = hasPredicate ? new object[] { result, GetTruePredicate(elementType) } : new object[] { result }; diff --git a/src/Remote.Linq/DynamicQuery/ExpressionHelper.cs b/src/Remote.Linq/DynamicQuery/ExpressionHelper.cs index 02fb3a2c..1a4bf6c0 100644 --- a/src/Remote.Linq/DynamicQuery/ExpressionHelper.cs +++ b/src/Remote.Linq/DynamicQuery/ExpressionHelper.cs @@ -28,7 +28,7 @@ public static void CheckExpressionResultType(SystemExpression expressio } if (expressionType.Implements(typeof(IQueryable<>), out var typeArgs) && - typeArgs.Length == 1 && + typeArgs.Length is 1 && typeof(TResult).IsAssignableFrom(typeArgs[0])) { return; diff --git a/src/Remote.Linq/Expressions/LambdaExpression.cs b/src/Remote.Linq/Expressions/LambdaExpression.cs index 807d8128..bf13a3f7 100644 --- a/src/Remote.Linq/Expressions/LambdaExpression.cs +++ b/src/Remote.Linq/Expressions/LambdaExpression.cs @@ -48,7 +48,7 @@ public LambdaExpression(Type? type, Expression expression, IEnumerable {Expression}"; } diff --git a/src/Remote.Linq/Include/SystemIncludeExpressionReWriter.cs b/src/Remote.Linq/Include/SystemIncludeExpressionReWriter.cs index 399b88e6..1b639e37 100644 --- a/src/Remote.Linq/Include/SystemIncludeExpressionReWriter.cs +++ b/src/Remote.Linq/Include/SystemIncludeExpressionReWriter.cs @@ -312,7 +312,7 @@ methodCallExpression.Arguments[1] is LambdaExpression lambdaExpression && private static Expression RemoveConvert(Expression expression) { - while (expression.NodeType == ExpressionType.Convert || expression.NodeType == ExpressionType.ConvertChecked) + while (expression.NodeType is ExpressionType.Convert or ExpressionType.ConvertChecked) { expression = ((UnaryExpression)expression).Operand; } diff --git a/src/Remote.Linq/SimpleQuery/Query.cs b/src/Remote.Linq/SimpleQuery/Query.cs index 8885df0b..f0cf10ec 100644 --- a/src/Remote.Linq/SimpleQuery/Query.cs +++ b/src/Remote.Linq/SimpleQuery/Query.cs @@ -82,7 +82,7 @@ public IQuery Where(LambdaExpression predicate) /// public IOrderedQuery OrderBy(SortExpression sortExpression) { - if (sortExpression.CheckNotNull().SortDirection != SortDirection.Ascending) + if (sortExpression.CheckNotNull().SortDirection is not SortDirection.Ascending) { throw new ArgumentException("Expected sort expresson to be ascending."); } @@ -96,7 +96,7 @@ public IOrderedQuery OrderBy(SortExpression sortExpression) /// public IOrderedQuery OrderByDescending(SortExpression sortExpression) { - if (sortExpression.CheckNotNull().SortDirection != SortDirection.Descending) + if (sortExpression.CheckNotNull().SortDirection is not SortDirection.Descending) { throw new ArgumentException("Expected sort expresson to be descending."); } @@ -112,12 +112,12 @@ public IOrderedQuery OrderByDescending(SortExpression sortExpression) /// A new query instance containing all specified query parameters. IOrderedQuery IOrderedQuery.ThenBy(SortExpression sortExpression) { - if (SortExpressions?.Any() != true) + if (SortExpressions?.Any() is not true) { throw new InvalidOperationException("No sorting defined yet, use OrderBy or OrderByDescending first."); } - if (sortExpression.SortDirection != SortDirection.Ascending) + if (sortExpression.SortDirection is not SortDirection.Ascending) { throw new ArgumentException("Expected sort expresson to be ascending."); } @@ -136,12 +136,12 @@ IOrderedQuery IOrderedQuery.ThenBy(SortExpression sortExpression) /// A new query instance containing all specified query parameters. IOrderedQuery IOrderedQuery.ThenByDescending(SortExpression sortExpression) { - if (SortExpressions?.Any() != true) + if (SortExpressions?.Any() is not true) { throw new InvalidOperationException("No sorting defined yet, use OrderBy or OrderByDescending first."); } - if (sortExpression.SortDirection != SortDirection.Descending) + if (sortExpression.SortDirection is not SortDirection.Descending) { throw new ArgumentException("Expected sort expresson to be descending."); } diff --git a/test/Remote.Linq.Tests/AsyncQueryableExtensions/Ensure_async_method_provided_for_every_synchronous_query_operation.cs b/test/Remote.Linq.Tests/AsyncQueryableExtensions/Ensure_async_method_provided_for_every_synchronous_query_operation.cs index b07d3f7f..300a8d28 100644 --- a/test/Remote.Linq.Tests/AsyncQueryableExtensions/Ensure_async_method_provided_for_every_synchronous_query_operation.cs +++ b/test/Remote.Linq.Tests/AsyncQueryableExtensions/Ensure_async_method_provided_for_every_synchronous_query_operation.cs @@ -92,7 +92,7 @@ public void Method_should_have_async_counterpart(MethodInfo method) .ToArray(); matchingMethods.ShouldNotBeEmpty($"No '{methodName}' query operation found matching argument list ({string.Join(", ", method.GetParameters().Select(x => x.ParameterType.GetFriendlyName(false, false)))}, {nameof(CancellationToken)})"); - if (matchingMethods.Length != 1) + if (matchingMethods.Length is not 1) { throw new RemoteLinqException($"Implementation error: should have exactly one matching method left at this point: '{methodName}'"); }