Skip to content

Commit 84106ac

Browse files
authored
Merge pull request #1162 from json-api-dotnet/fix-definition-sort-in-type-hierarchy
Fixed crash in sort lambda from generic resource definition
2 parents 9af5eda + 174a599 commit 84106ac

File tree

2 files changed

+4
-7
lines changed

2 files changed

+4
-7
lines changed

Diff for: src/JsonApiDotNetCore/Resources/SortExpressionLambdaConverter.cs

+2-5
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,9 @@ private static (Expression? innerExpression, bool isCount) TryReadCount(Expressi
114114

115115
private Expression? ReadAttribute(Expression expression)
116116
{
117-
if (expression is MemberExpression memberExpression)
117+
if (expression is MemberExpression { Expression: { } } memberExpression)
118118
{
119-
ResourceType resourceType = memberExpression.Member.Name == nameof(Identifiable<object>.Id) && memberExpression.Expression != null
120-
? _resourceGraph.GetResourceType(memberExpression.Expression.Type)
121-
: _resourceGraph.GetResourceType(memberExpression.Member.DeclaringType!);
122-
119+
ResourceType resourceType = _resourceGraph.GetResourceType(memberExpression.Expression.Type);
123120
AttrAttribute? attribute = resourceType.FindAttributeByPropertyName(memberExpression.Member.Name);
124121

125122
if (attribute != null)

Diff for: test/JsonApiDotNetCoreTests/UnitTests/ResourceDefinitions/CreateSortExpressionFromLambdaTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void Can_convert_chain_of_ToOne_relationships_ending_in_attribute()
3737
string[] expected =
3838
{
3939
"-fileEntries:content",
40-
"fileSystemEntries:name",
40+
"fileEntries:name",
4141
"fileEntries:length",
4242
"fileSystemEntries:parent.fileSystemEntries:name",
4343
"fileSystemEntries:parent.fileSystemEntries:parent.fileSystemEntries:name"
@@ -103,7 +103,7 @@ public void Can_convert_chain_with_conversion_to_derived_types()
103103
"fileSystemEntries:parent.fileEntries:content",
104104
"count(directoryEntries:subdirectories)",
105105
"count(fileSystemEntries:parent.directoryEntries:files)",
106-
"-fileSystemEntries:name"
106+
"-directoryEntries:name"
107107
};
108108

109109
expression.ToFullString().Should().Be(string.Join(',', expected));

0 commit comments

Comments
 (0)