5
5
using Newtonsoft . Json . Linq ;
6
6
using System . IO ;
7
7
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common ;
8
+ using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Create ;
8
9
using System . Linq ;
9
10
10
11
namespace Microsoft . Azure . Management . ApiManagement . ArmTemplates . Extract
@@ -38,7 +39,7 @@ public ExtractCommand()
38
39
{
39
40
singleApiName = apiName . Values [ 0 ] . ToString ( ) ;
40
41
}
41
-
42
+
42
43
Console . WriteLine ( "API Management Template" ) ;
43
44
Console . WriteLine ( ) ;
44
45
Console . WriteLine ( "Connecting to {0} API Management Service on {1} Resource Group ..." , apimname , resourceGroup ) ;
@@ -58,19 +59,9 @@ private void GenerateARMTemplate(string apimname, string resourceGroup, string f
58
59
FileWriter fileWriter ;
59
60
APIExtractor apiExtractor = new APIExtractor ( ) ;
60
61
string apis = apiExtractor . GetAPIs ( apimname , resourceGroup ) . Result ;
61
-
62
- Template armTemplate = new Template ( )
63
- {
64
- schema = "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#" ,
65
- contentVersion = "1.0.0.0" ,
66
- parameters = new Dictionary < string , TemplateParameterProperties >
67
- {
68
- { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } }
69
- } ,
70
- variables = { } ,
71
- resources = { } ,
72
- outputs = { }
73
- } ;
62
+ TemplateCreator templateCreator = new TemplateCreator ( ) ;
63
+ Template armTemplate = templateCreator . CreateEmptyTemplate ( ) ;
64
+ armTemplate . parameters = new Dictionary < string , TemplateParameterProperties > { { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } } } ;
74
65
75
66
JObject oApi = JObject . Parse ( apis ) ;
76
67
oApi = FormatoApi ( singleApiName , oApi ) ;
@@ -191,9 +182,9 @@ private void GenerateARMTemplate(string apimname, string resourceGroup, string f
191
182
Console . WriteLine ( $ " -- { apiProductName } Product found to { oApiName } API") ;
192
183
ApiProductsTemplateResource apiProductsResource = JsonConvert . DeserializeObject < ApiProductsTemplateResource > ( apiProducts ) ;
193
184
apiProductsResource . type = "Microsoft.ApiManagement/service/products/apis" ;
194
- apiProductsResource . name = $ "[concat(parameters('ApimServiceName'), '/{ apiProductName } /{ oApiName } ')]";
185
+ apiProductsResource . name = $ "[concat(parameters('ApimServiceName'), '/{ apiProductName } /{ oApiName } ')]";
195
186
apiProductsResource . apiVersion = "2018-06-01-preview" ;
196
- apiProductsResource . scale = null ;
187
+ apiProductsResource . scale = null ;
197
188
apiProductsResource . dependsOn = new string [ ] { $ "[resourceId('Microsoft.ApiManagement/service/apis', parameters('ApimServiceName'), '{ oApiName } ')]" } ;
198
189
199
190
templateResources . Add ( apiProductsResource ) ;
@@ -205,7 +196,7 @@ private void GenerateARMTemplate(string apimname, string resourceGroup, string f
205
196
Console . WriteLine ( "No API products!" ) ;
206
197
}
207
198
#endregion
208
-
199
+
209
200
#region Diagnostics
210
201
211
202
Console . WriteLine ( "------------------------------------------" ) ;
@@ -251,7 +242,7 @@ private void GenerateARMTemplate(string apimname, string resourceGroup, string f
251
242
fileWriter = new FileWriter ( ) ;
252
243
fileWriter . WriteJSONToFile ( armTemplate , @fileFolder + Path . DirectorySeparatorChar + apimname + "-apis-template.json" ) ;
253
244
}
254
- #endregion
245
+ #endregion
255
246
}
256
247
private static JObject FormatoApi ( string singleApiName , JObject oApi )
257
248
{
@@ -265,7 +256,7 @@ private static JObject FormatoApi(string singleApiName, JObject oApi)
265
256
var selectedApi = ( JObject ) oApi . SelectTokens ( objectSelector ) . FirstOrDefault ( ) ;
266
257
if ( selectedApi == null )
267
258
{
268
- throw new Exception ( $ "{ singleApiName } API not found!" ) ;
259
+ throw new Exception ( $ "{ singleApiName } API not found!") ;
269
260
}
270
261
item2 . Add ( selectedApi ) ;
271
262
value [ "value" ] = item2 ;
@@ -277,20 +268,11 @@ private static JObject FormatoApi(string singleApiName, JObject oApi)
277
268
private void GenerateVersionSetARMTemplate ( string apimname , string resourceGroup , string versionSetName , string fileFolder )
278
269
{
279
270
APIExtractor apiExtractor = new APIExtractor ( ) ;
280
- Template armTemplate = new Template ( )
281
- {
282
- schema = "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#" ,
283
- contentVersion = "1.0.0.0" ,
284
- parameters = new Dictionary < string , TemplateParameterProperties >
285
- {
286
- { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } }
287
- } ,
288
- variables = { } ,
289
- resources = { } ,
290
- outputs = { }
291
- } ;
271
+ TemplateCreator templateCreator = new TemplateCreator ( ) ;
272
+ Template armTemplate = templateCreator . CreateEmptyTemplate ( ) ;
273
+ armTemplate . parameters = new Dictionary < string , TemplateParameterProperties > { { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } } } ;
292
274
293
- List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
275
+ List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
294
276
295
277
string versionSet = apiExtractor . GetAPIVersionSet ( apimname , resourceGroup , versionSetName ) . Result ;
296
278
APIVersionSetTemplateResource versionSetResource = JsonConvert . DeserializeObject < APIVersionSetTemplateResource > ( versionSet ) ;
@@ -309,18 +291,9 @@ private void GenerateVersionSetARMTemplate(string apimname, string resourceGroup
309
291
private void GenerateProductsARMTemplate ( string apimname , string resourceGroup , string fileFolder )
310
292
{
311
293
APIExtractor apiExtractor = new APIExtractor ( ) ;
312
- Template armTemplate = new Template ( )
313
- {
314
- schema = "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#" ,
315
- contentVersion = "1.0.0.0" ,
316
- parameters = new Dictionary < string , TemplateParameterProperties >
317
- {
318
- { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } }
319
- } ,
320
- variables = { } ,
321
- resources = { } ,
322
- outputs = { }
323
- } ;
294
+ TemplateCreator templateCreator = new TemplateCreator ( ) ;
295
+ Template armTemplate = templateCreator . CreateEmptyTemplate ( ) ;
296
+ armTemplate . parameters = new Dictionary < string , TemplateParameterProperties > { { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } } } ;
324
297
325
298
List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
326
299
@@ -354,18 +327,9 @@ private async void GenerateLoggerTemplate(string resourceGroup, string apimname,
354
327
Console . WriteLine ( "Geting loggers from service" ) ;
355
328
LoggerExtractor loggerExtractor = new LoggerExtractor ( ) ;
356
329
PropertyExtractor propertyExtractor = new PropertyExtractor ( ) ;
357
- Template armTemplate = new Template ( )
358
- {
359
- schema = "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#" ,
360
- contentVersion = "1.0.0.0" ,
361
- parameters = new Dictionary < string , TemplateParameterProperties >
362
- {
363
- { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } }
364
- } ,
365
- variables = { } ,
366
- resources = { } ,
367
- outputs = { }
368
- } ;
330
+ TemplateCreator templateCreator = new TemplateCreator ( ) ;
331
+ Template armTemplate = templateCreator . CreateEmptyTemplate ( ) ;
332
+ armTemplate . parameters = new Dictionary < string , TemplateParameterProperties > { { "ApimServiceName" , new TemplateParameterProperties ( ) { type = "string" } } } ;
369
333
370
334
List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
371
335
@@ -395,7 +359,8 @@ private async void GenerateLoggerTemplate(string resourceGroup, string apimname,
395
359
{
396
360
string hiddenKey = loggerResource . properties . credentials . instrumentationKey . Substring ( 2 , loggerResource . properties . credentials . instrumentationKey . Length - 4 ) ;
397
361
loggerResource . properties . credentials . instrumentationKey = propertyResources . Find ( p => p . properties . displayName == hiddenKey ) . properties . value ;
398
- } else if ( loggerResource . properties . credentials . connectionString != null )
362
+ }
363
+ else if ( loggerResource . properties . credentials . connectionString != null )
399
364
{
400
365
string hiddenKey = loggerResource . properties . credentials . connectionString . Substring ( 2 , loggerResource . properties . credentials . connectionString . Length - 4 ) ;
401
366
loggerResource . properties . credentials . connectionString = propertyResources . Find ( p => p . properties . displayName == hiddenKey ) . properties . value ;
0 commit comments