@@ -101,7 +101,7 @@ private WriteOperationKind ConvertOperationCode(AtomicOperationObject atomicOper
101
101
private ( ResourceIdentityRequirements requirements , IIdentifiable ? primaryResource ) ConvertRef ( AtomicOperationObject atomicOperationObject ,
102
102
RequestAdapterState state )
103
103
{
104
- ResourceIdentityRequirements requirements = CreateIdentityRequirements ( state ) ;
104
+ ResourceIdentityRequirements requirements = CreateDataRequirements ( state ) ;
105
105
IIdentifiable ? primaryResource = null ;
106
106
107
107
AtomicReferenceResult ? refResult = atomicOperationObject . Ref != null
@@ -110,29 +110,21 @@ private WriteOperationKind ConvertOperationCode(AtomicOperationObject atomicOper
110
110
111
111
if ( refResult != null )
112
112
{
113
- requirements = new ResourceIdentityRequirements
114
- {
115
- ResourceType = refResult . ResourceType ,
116
- IdConstraint = requirements . IdConstraint ,
117
- IdValue = refResult . Resource . StringId ,
118
- LidValue = refResult . Resource . LocalId ,
119
- RelationshipName = refResult . Relationship ? . PublicName
120
- } ;
121
-
122
113
state . WritableRequest ! . PrimaryId = refResult . Resource . StringId ;
123
114
state . WritableRequest . PrimaryResourceType = refResult . ResourceType ;
124
115
state . WritableRequest . Relationship = refResult . Relationship ;
125
116
state . WritableRequest . IsCollection = refResult . Relationship is HasManyAttribute ;
126
117
127
118
ConvertRefRelationship ( atomicOperationObject . Data , refResult , state ) ;
128
119
120
+ requirements = CreateRefRequirements ( refResult , requirements ) ;
129
121
primaryResource = refResult . Resource ;
130
122
}
131
123
132
124
return ( requirements , primaryResource ) ;
133
125
}
134
126
135
- private ResourceIdentityRequirements CreateIdentityRequirements ( RequestAdapterState state )
127
+ private ResourceIdentityRequirements CreateDataRequirements ( RequestAdapterState state )
136
128
{
137
129
JsonElementConstraint ? idConstraint = state . Request . WriteOperation == WriteOperationKind . CreateResource
138
130
? _options . AllowClientGeneratedIds ? null : JsonElementConstraint . Forbidden
@@ -144,6 +136,18 @@ private ResourceIdentityRequirements CreateIdentityRequirements(RequestAdapterSt
144
136
} ;
145
137
}
146
138
139
+ private static ResourceIdentityRequirements CreateRefRequirements ( AtomicReferenceResult refResult , ResourceIdentityRequirements dataRequirements )
140
+ {
141
+ return new ResourceIdentityRequirements
142
+ {
143
+ ResourceType = refResult . ResourceType ,
144
+ IdConstraint = dataRequirements . IdConstraint ,
145
+ IdValue = refResult . Resource . StringId ,
146
+ LidValue = refResult . Resource . LocalId ,
147
+ RelationshipName = refResult . Relationship ? . PublicName
148
+ } ;
149
+ }
150
+
147
151
private void ConvertRefRelationship ( SingleOrManyData < ResourceObject > relationshipData , AtomicReferenceResult refResult , RequestAdapterState state )
148
152
{
149
153
if ( refResult . Relationship != null )
0 commit comments