@@ -14,39 +14,38 @@ internal sealed class JsonApiSchemaIdSelector
14
14
{
15
15
private static readonly IDictionary < Type , string > OpenTypeToSchemaTemplateMap = new Dictionary < Type , string >
16
16
{
17
- [ typeof ( ResourcePostRequestDocument < > ) ] = "[Resource ] Post Request Document" ,
18
- [ typeof ( ResourcePatchRequestDocument < > ) ] = "[Resource ] Patch Request Document" ,
19
- [ typeof ( ResourceObjectInPostRequest < > ) ] = "[Resource ] Data In Post Request" ,
20
- [ typeof ( AttributesInPostRequest < > ) ] = "[Resource ] Attributes In Post Request" ,
21
- [ typeof ( RelationshipsInPostRequest < > ) ] = "[Resource ] Relationships In Post Request" ,
22
- [ typeof ( ResourceObjectInPatchRequest < > ) ] = "[Resource ] Data In Patch Request" ,
23
- [ typeof ( AttributesInPatchRequest < > ) ] = "[Resource ] Attributes In Patch Request" ,
24
- [ typeof ( RelationshipsInPatchRequest < > ) ] = "[Resource ] Relationships In Patch Request" ,
25
- [ typeof ( ToOneRelationshipInRequest < > ) ] = "To One [Resource ] In Request" ,
26
- [ typeof ( NullableToOneRelationshipInRequest < > ) ] = "nullable To One [Resource ] In Request" ,
27
- [ typeof ( ToManyRelationshipInRequest < > ) ] = "To Many [Resource ] In Request" ,
28
- [ typeof ( PrimaryResourceResponseDocument < > ) ] = "[Resource ] Primary Response Document" ,
29
- [ typeof ( SecondaryResourceResponseDocument < > ) ] = "[Resource ] Secondary Response Document" ,
30
- [ typeof ( NullableSecondaryResourceResponseDocument < > ) ] = "nullable [Resource ] Secondary Response Document" ,
31
- [ typeof ( ResourceCollectionResponseDocument < > ) ] = "[Resource ] Collection Response Document" ,
32
- [ typeof ( ResourceIdentifierResponseDocument < > ) ] = "[Resource ] Identifier Response Document" ,
33
- [ typeof ( NullableResourceIdentifierResponseDocument < > ) ] = "nullable [Resource ] Identifier Response Document" ,
34
- [ typeof ( ResourceIdentifierCollectionResponseDocument < > ) ] = "[Resource ] Identifier Collection Response Document" ,
35
- [ typeof ( ToOneRelationshipInResponse < > ) ] = "To One [Resource ] In Response" ,
36
- [ typeof ( NullableToOneRelationshipInResponse < > ) ] = "nullable To One [Resource ] In Response" ,
37
- [ typeof ( ToManyRelationshipInResponse < > ) ] = "To Many [Resource ] In Response" ,
38
- [ typeof ( ResourceObjectInResponse < > ) ] = "[Resource ] Data In Response" ,
39
- [ typeof ( AttributesInResponse < > ) ] = "[Resource ] Attributes In Response" ,
40
- [ typeof ( RelationshipsInResponse < > ) ] = "[Resource ] Relationships In Response" ,
41
- [ typeof ( ResourceIdentifierObject < > ) ] = "[Resource ] Identifier"
17
+ [ typeof ( ResourcePostRequestDocument < > ) ] = "[ResourceName ] Post Request Document" ,
18
+ [ typeof ( ResourcePatchRequestDocument < > ) ] = "[ResourceName ] Patch Request Document" ,
19
+ [ typeof ( ResourceObjectInPostRequest < > ) ] = "[ResourceName ] Data In Post Request" ,
20
+ [ typeof ( AttributesInPostRequest < > ) ] = "[ResourceName ] Attributes In Post Request" ,
21
+ [ typeof ( RelationshipsInPostRequest < > ) ] = "[ResourceName ] Relationships In Post Request" ,
22
+ [ typeof ( ResourceObjectInPatchRequest < > ) ] = "[ResourceName ] Data In Patch Request" ,
23
+ [ typeof ( AttributesInPatchRequest < > ) ] = "[ResourceName ] Attributes In Patch Request" ,
24
+ [ typeof ( RelationshipsInPatchRequest < > ) ] = "[ResourceName ] Relationships In Patch Request" ,
25
+ [ typeof ( ToOneRelationshipInRequest < > ) ] = "To One [ResourceName ] In Request" ,
26
+ [ typeof ( NullableToOneRelationshipInRequest < > ) ] = "Nullable To One [ResourceName ] In Request" ,
27
+ [ typeof ( ToManyRelationshipInRequest < > ) ] = "To Many [ResourceName ] In Request" ,
28
+ [ typeof ( PrimaryResourceResponseDocument < > ) ] = "[ResourceName ] Primary Response Document" ,
29
+ [ typeof ( SecondaryResourceResponseDocument < > ) ] = "[ResourceName ] Secondary Response Document" ,
30
+ [ typeof ( NullableSecondaryResourceResponseDocument < > ) ] = "Nullable [ResourceName ] Secondary Response Document" ,
31
+ [ typeof ( ResourceCollectionResponseDocument < > ) ] = "[ResourceName ] Collection Response Document" ,
32
+ [ typeof ( ResourceIdentifierResponseDocument < > ) ] = "[ResourceName ] Identifier Response Document" ,
33
+ [ typeof ( NullableResourceIdentifierResponseDocument < > ) ] = "Nullable [ResourceName ] Identifier Response Document" ,
34
+ [ typeof ( ResourceIdentifierCollectionResponseDocument < > ) ] = "[ResourceName ] Identifier Collection Response Document" ,
35
+ [ typeof ( ToOneRelationshipInResponse < > ) ] = "To One [ResourceName ] In Response" ,
36
+ [ typeof ( NullableToOneRelationshipInResponse < > ) ] = "Nullable To One [ResourceName ] In Response" ,
37
+ [ typeof ( ToManyRelationshipInResponse < > ) ] = "To Many [ResourceName ] In Response" ,
38
+ [ typeof ( ResourceObjectInResponse < > ) ] = "[ResourceName ] Data In Response" ,
39
+ [ typeof ( AttributesInResponse < > ) ] = "[ResourceName ] Attributes In Response" ,
40
+ [ typeof ( RelationshipsInResponse < > ) ] = "[ResourceName ] Relationships In Response" ,
41
+ [ typeof ( ResourceIdentifierObject < > ) ] = "[ResourceName ] Identifier"
42
42
} ;
43
43
44
- private readonly JsonNamingPolicy _namingPolicy ;
44
+ private readonly JsonNamingPolicy ? _namingPolicy ;
45
45
private readonly IResourceGraph _resourceGraph ;
46
46
47
- public JsonApiSchemaIdSelector ( JsonNamingPolicy namingPolicy , IResourceGraph resourceGraph )
47
+ public JsonApiSchemaIdSelector ( JsonNamingPolicy ? namingPolicy , IResourceGraph resourceGraph )
48
48
{
49
- ArgumentGuard . NotNull ( namingPolicy , nameof ( namingPolicy ) ) ;
50
49
ArgumentGuard . NotNull ( resourceGraph , nameof ( resourceGraph ) ) ;
51
50
52
51
_namingPolicy = namingPolicy ;
@@ -67,28 +66,23 @@ public string GetSchemaId(Type type)
67
66
if ( type . IsConstructedGenericType && OpenTypeToSchemaTemplateMap . ContainsKey ( type . GetGenericTypeDefinition ( ) ) )
68
67
{
69
68
string pascalCaseSchemaIdTemplate = OpenTypeToSchemaTemplateMap [ type . GetGenericTypeDefinition ( ) ] ;
70
- Type resourceType = type . GetGenericArguments ( ) . First ( ) ;
69
+ Type resourceClrType = type . GetGenericArguments ( ) . First ( ) ;
71
70
72
71
// @formatter:wrap_chained_method_calls chop_always
73
72
// @formatter:keep_existing_linebreaks true
74
73
75
74
string pascalCaseSchemaId = pascalCaseSchemaIdTemplate
76
- . Replace ( "[ResourceName]" , resourceType . Name )
75
+ . Replace ( "[ResourceName]" , resourceClrType . Name )
77
76
. Replace ( " " , "" ) ;
78
77
79
78
// @formatter:keep_existing_linebreaks restore
80
79
// @formatter:wrap_chained_method_calls restore
81
80
82
- return _namingPolicy . ConvertName ( pascalCaseSchemaId ) ;
81
+ return _namingPolicy != null ? _namingPolicy . ConvertName ( pascalCaseSchemaId ) : pascalCaseSchemaId ;
83
82
}
84
83
85
84
// Used for a fixed set of types, such as jsonapi-object, links-in-many-resource-document etc.
86
- return _namingPolicy . ConvertName ( type . Name ) ;
87
- }
88
-
89
- private static string Capitalize ( string term )
90
- {
91
- return string . Concat ( term [ 0 ] . ToString ( ) . ToUpper ( ) , term . AsSpan ( 1 ) ) ;
85
+ return _namingPolicy != null ? _namingPolicy . ConvertName ( type . Name ) : type . Name ;
92
86
}
93
87
}
94
88
}
0 commit comments