@@ -192,35 +192,23 @@ public async Task<Template> GenerateAPIsARMTemplateAsync(string apimname, string
192
192
operationResource . apiVersion = GlobalConstants . APIVersion ;
193
193
operationResource . scale = null ;
194
194
195
- // add api and schemas to operation dependsOn, if necessary
195
+ // add operation dependencies and fix sample value if necessary
196
196
List < string > operationDependsOn = new List < string > ( ) { $ "[resourceId('Microsoft.ApiManagement/service/apis', parameters('ApimServiceName'), '{ oApiName } ')]" } ;
197
197
foreach ( OperationTemplateRepresentation operationTemplateRepresentation in operationResource . properties . request . representations )
198
198
{
199
- if ( operationTemplateRepresentation . schemaId != null )
200
- {
201
- string dependsOn = $ "[resourceId('Microsoft.ApiManagement/service/apis/schemas', parameters('ApimServiceName'), '{ oApiName } ', '{ operationTemplateRepresentation . schemaId } ')]";
202
- // add value to list if schema has not already been added
203
- if ( ! operationDependsOn . Exists ( o => o == dependsOn ) )
204
- {
205
- operationDependsOn . Add ( dependsOn ) ;
206
- }
207
- }
199
+ AddSchemaDependencyToOperationIfNecessary ( oApiName , operationDependsOn , operationTemplateRepresentation ) ;
200
+ ArmEscapeSampleValueIfNecessary ( operationTemplateRepresentation ) ;
208
201
}
202
+
209
203
foreach ( OperationsTemplateResponse operationTemplateResponse in operationResource . properties . responses )
210
204
{
211
205
foreach ( OperationTemplateRepresentation operationTemplateRepresentation in operationTemplateResponse . representations )
212
206
{
213
- if ( operationTemplateRepresentation . schemaId != null )
214
- {
215
- string dependsOn = $ "[resourceId('Microsoft.ApiManagement/service/apis/schemas', parameters('ApimServiceName'), '{ oApiName } ', '{ operationTemplateRepresentation . schemaId } ')]";
216
- // add value to list if schema has not already been added
217
- if ( ! operationDependsOn . Exists ( o => o == dependsOn ) )
218
- {
219
- operationDependsOn . Add ( dependsOn ) ;
220
- }
221
- }
207
+ AddSchemaDependencyToOperationIfNecessary ( oApiName , operationDependsOn , operationTemplateRepresentation ) ;
208
+ ArmEscapeSampleValueIfNecessary ( operationTemplateRepresentation ) ;
222
209
}
223
210
}
211
+
224
212
operationResource . dependsOn = operationDependsOn . ToArray ( ) ;
225
213
templateResources . Add ( operationResource ) ;
226
214
@@ -342,7 +330,28 @@ public async Task<Template> GenerateAPIsARMTemplateAsync(string apimname, string
342
330
return armTemplate ;
343
331
}
344
332
345
- public static JObject FormatoApi ( string singleApiName , JObject oApi )
333
+ private static void ArmEscapeSampleValueIfNecessary ( OperationTemplateRepresentation operationTemplateRepresentation )
334
+ {
335
+ if ( ! string . IsNullOrWhiteSpace ( operationTemplateRepresentation . sample ) && operationTemplateRepresentation . contentType == "application/json" && JToken . Parse ( operationTemplateRepresentation . sample ) . Type == JTokenType . Array )
336
+ {
337
+ operationTemplateRepresentation . sample = "[" + operationTemplateRepresentation . sample ;
338
+ }
339
+ }
340
+
341
+ private static void AddSchemaDependencyToOperationIfNecessary ( string oApiName , List < string > operationDependsOn , OperationTemplateRepresentation operationTemplateRepresentation )
342
+ {
343
+ if ( operationTemplateRepresentation . schemaId != null )
344
+ {
345
+ string dependsOn = $ "[resourceId('Microsoft.ApiManagement/service/apis/schemas', parameters('ApimServiceName'), '{ oApiName } ', '{ operationTemplateRepresentation . schemaId } ')]";
346
+ // add value to list if schema has not already been added
347
+ if ( ! operationDependsOn . Exists ( o => o == dependsOn ) )
348
+ {
349
+ operationDependsOn . Add ( dependsOn ) ;
350
+ }
351
+ }
352
+ }
353
+
354
+ private static JObject FormatoApi ( string singleApiName , JObject oApi )
346
355
{
347
356
if ( singleApiName != null )
348
357
{
@@ -364,7 +373,7 @@ public static JObject FormatoApi(string singleApiName, JObject oApi)
364
373
return oApi ;
365
374
}
366
375
367
- public async Task < List < TemplateResource > > GenerateSchemasARMTemplate ( string apimServiceName , string apiName , string resourceGroup , string fileFolder )
376
+ private async Task < List < TemplateResource > > GenerateSchemasARMTemplate ( string apimServiceName , string apiName , string resourceGroup , string fileFolder )
368
377
{
369
378
List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
370
379
0 commit comments