@@ -25,90 +25,98 @@ public ExtractCommand()
25
25
26
26
this . OnExecute ( async ( ) =>
27
27
{
28
- if ( ! sourceApimName . HasValue ( ) ) throw new Exception ( "Missing parameter <sourceApimName>." ) ;
29
- if ( ! destinationAPIManagementName . HasValue ( ) ) throw new Exception ( "Missing parameter <destinationApimName>." ) ;
30
- if ( ! resourceGroupName . HasValue ( ) ) throw new Exception ( "Missing parameter <resourceGroup>." ) ;
31
- if ( ! fileFolderName . HasValue ( ) ) throw new Exception ( "Missing parameter <filefolder>." ) ;
28
+ try
29
+ {
30
+ if ( ! sourceApimName . HasValue ( ) ) throw new Exception ( "Missing parameter <sourceApimName>." ) ;
31
+ if ( ! destinationAPIManagementName . HasValue ( ) ) throw new Exception ( "Missing parameter <destinationApimName>." ) ;
32
+ if ( ! resourceGroupName . HasValue ( ) ) throw new Exception ( "Missing parameter <resourceGroup>." ) ;
33
+ if ( ! fileFolderName . HasValue ( ) ) throw new Exception ( "Missing parameter <filefolder>." ) ;
32
34
33
- // isolate cli parameters
34
- string resourceGroup = resourceGroupName . Values [ 0 ] . ToString ( ) ;
35
- string sourceApim = sourceApimName . Values [ 0 ] . ToString ( ) ;
36
- string destinationApim = destinationAPIManagementName . Values [ 0 ] . ToString ( ) ;
37
- string fileFolder = fileFolderName . Values [ 0 ] . ToString ( ) ;
38
- string linkedBaseUrl = linkedTemplatesBaseUrlName . HasValue ( ) ? linkedTemplatesBaseUrlName . Value ( ) . ToString ( ) : null ;
39
- string policyXMLBaseUrl = policyXMLBaseUrlName . HasValue ( ) ? policyXMLBaseUrlName . Value ( ) . ToString ( ) : null ;
40
- string singleApiName = null ;
35
+ // isolate cli parameters
36
+ string resourceGroup = resourceGroupName . Values [ 0 ] . ToString ( ) ;
37
+ string sourceApim = sourceApimName . Values [ 0 ] . ToString ( ) ;
38
+ string destinationApim = destinationAPIManagementName . Values [ 0 ] . ToString ( ) ;
39
+ string fileFolder = fileFolderName . Values [ 0 ] . ToString ( ) ;
40
+ string linkedBaseUrl = linkedTemplatesBaseUrlName . HasValue ( ) ? linkedTemplatesBaseUrlName . Value ( ) . ToString ( ) : null ;
41
+ string policyXMLBaseUrl = policyXMLBaseUrlName . HasValue ( ) ? policyXMLBaseUrlName . Value ( ) . ToString ( ) : null ;
42
+ string singleApiName = null ;
41
43
42
- if ( apiName . Values . Count > 0 )
43
- {
44
- singleApiName = apiName . Values [ 0 ] . ToString ( ) ;
45
- }
44
+ if ( apiName . Values . Count > 0 )
45
+ {
46
+ singleApiName = apiName . Values [ 0 ] . ToString ( ) ;
47
+ }
46
48
47
- Console . WriteLine ( "API Management Template" ) ;
48
- Console . WriteLine ( ) ;
49
- Console . WriteLine ( "Connecting to {0} API Management Service on {1} Resource Group ..." , sourceApim , resourceGroup ) ;
50
- if ( singleApiName != null )
51
- {
52
- Console . WriteLine ( "Executing extraction for {0} API ..." , singleApiName ) ;
53
- }
54
- else
55
- {
56
- Console . WriteLine ( "Executing full extraction ..." , singleApiName ) ;
57
- }
49
+ Console . WriteLine ( "API Management Template" ) ;
50
+ Console . WriteLine ( ) ;
51
+ Console . WriteLine ( "Connecting to {0} API Management Service on {1} Resource Group ..." , sourceApim , resourceGroup ) ;
52
+ if ( singleApiName != null )
53
+ {
54
+ Console . WriteLine ( "Executing extraction for {0} API ..." , singleApiName ) ;
55
+ }
56
+ else
57
+ {
58
+ Console . WriteLine ( "Executing full extraction ..." , singleApiName ) ;
59
+ }
58
60
59
- // initialize file helper classes
60
- FileWriter fileWriter = new FileWriter ( ) ;
61
- FileNameGenerator fileNameGenerator = new FileNameGenerator ( ) ;
62
- FileNames fileNames = fileNameGenerator . GenerateFileNames ( sourceApim ) ;
61
+ // initialize file helper classes
62
+ FileWriter fileWriter = new FileWriter ( ) ;
63
+ FileNameGenerator fileNameGenerator = new FileNameGenerator ( ) ;
64
+ FileNames fileNames = fileNameGenerator . GenerateFileNames ( sourceApim ) ;
63
65
64
- // initialize entity extractor classes
65
- APIExtractor apiExtractor = new APIExtractor ( fileWriter ) ;
66
- APIVersionSetExtractor apiVersionSetExtractor = new APIVersionSetExtractor ( ) ;
67
- AuthorizationServerExtractor authorizationServerExtractor = new AuthorizationServerExtractor ( ) ;
68
- BackendExtractor backendExtractor = new BackendExtractor ( ) ;
69
- LoggerExtractor loggerExtractor = new LoggerExtractor ( ) ;
70
- PropertyExtractor propertyExtractor = new PropertyExtractor ( ) ;
71
- ProductExtractor productExtractor = new ProductExtractor ( fileWriter ) ;
72
- MasterTemplateExtractor masterTemplateExtractor = new MasterTemplateExtractor ( ) ;
66
+ // initialize entity extractor classes
67
+ APIExtractor apiExtractor = new APIExtractor ( fileWriter ) ;
68
+ APIVersionSetExtractor apiVersionSetExtractor = new APIVersionSetExtractor ( ) ;
69
+ AuthorizationServerExtractor authorizationServerExtractor = new AuthorizationServerExtractor ( ) ;
70
+ BackendExtractor backendExtractor = new BackendExtractor ( ) ;
71
+ LoggerExtractor loggerExtractor = new LoggerExtractor ( ) ;
72
+ PropertyExtractor propertyExtractor = new PropertyExtractor ( ) ;
73
+ ProductExtractor productExtractor = new ProductExtractor ( fileWriter ) ;
74
+ MasterTemplateExtractor masterTemplateExtractor = new MasterTemplateExtractor ( ) ;
73
75
74
- // extract templates from apim service
75
- Template apiTemplate = await apiExtractor . GenerateAPIsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , policyXMLBaseUrl , fileFolder ) ;
76
- List < TemplateResource > apiTemplateResources = apiTemplate . resources . ToList ( ) ;
77
- Template apiVersionSetTemplate = await apiVersionSetExtractor . GenerateAPIVersionSetsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
78
- Template authorizationServerTemplate = await authorizationServerExtractor . GenerateAuthorizationServersARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
79
- Template loggerTemplate = await loggerExtractor . GenerateLoggerTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
80
- Template productTemplate = await productExtractor . GenerateProductsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl , fileFolder ) ;
81
- Template namedValueTemplate = await propertyExtractor . GenerateNamedValuesTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
82
- List < TemplateResource > namedValueResources = namedValueTemplate . resources . ToList ( ) ;
83
- Template backendTemplate = await backendExtractor . GenerateBackendsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , namedValueResources , policyXMLBaseUrl ) ;
76
+ // extract templates from apim service
77
+ Template apiTemplate = await apiExtractor . GenerateAPIsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , policyXMLBaseUrl , fileFolder ) ;
78
+ List < TemplateResource > apiTemplateResources = apiTemplate . resources . ToList ( ) ;
79
+ Template apiVersionSetTemplate = await apiVersionSetExtractor . GenerateAPIVersionSetsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
80
+ Template authorizationServerTemplate = await authorizationServerExtractor . GenerateAuthorizationServersARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
81
+ Template loggerTemplate = await loggerExtractor . GenerateLoggerTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
82
+ Template productTemplate = await productExtractor . GenerateProductsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl , fileFolder ) ;
83
+ Template namedValueTemplate = await propertyExtractor . GenerateNamedValuesTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
84
+ List < TemplateResource > namedValueResources = namedValueTemplate . resources . ToList ( ) ;
85
+ Template backendTemplate = await backendExtractor . GenerateBackendsARMTemplateAsync ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , namedValueResources , policyXMLBaseUrl ) ;
84
86
85
- // create parameters file
86
- Template templateParameters = masterTemplateExtractor . CreateMasterTemplateParameterValues ( destinationApim , linkedBaseUrl , policyXMLBaseUrl ) ;
87
+ // create parameters file
88
+ Template templateParameters = masterTemplateExtractor . CreateMasterTemplateParameterValues ( destinationApim , linkedBaseUrl , policyXMLBaseUrl ) ;
87
89
88
- // write templates to output file location
89
- string apiFileName = fileNameGenerator . GenerateExtractorAPIFileName ( singleApiName , sourceApim ) ;
90
- fileWriter . WriteJSONToFile ( apiTemplate , String . Concat ( @fileFolder , apiFileName ) ) ;
91
- fileWriter . WriteJSONToFile ( apiVersionSetTemplate , String . Concat ( @fileFolder , fileNames . apiVersionSets ) ) ;
92
- fileWriter . WriteJSONToFile ( authorizationServerTemplate , String . Concat ( @fileFolder , fileNames . authorizationServers ) ) ;
93
- fileWriter . WriteJSONToFile ( backendTemplate , String . Concat ( @fileFolder , fileNames . backends ) ) ;
94
- fileWriter . WriteJSONToFile ( loggerTemplate , String . Concat ( @fileFolder , fileNames . loggers ) ) ;
95
- fileWriter . WriteJSONToFile ( namedValueTemplate , String . Concat ( @fileFolder , fileNames . namedValues ) ) ;
96
- fileWriter . WriteJSONToFile ( productTemplate , String . Concat ( @fileFolder , fileNames . products ) ) ;
90
+ // write templates to output file location
91
+ string apiFileName = fileNameGenerator . GenerateExtractorAPIFileName ( singleApiName , sourceApim ) ;
92
+ fileWriter . WriteJSONToFile ( apiTemplate , String . Concat ( @fileFolder , apiFileName ) ) ;
93
+ fileWriter . WriteJSONToFile ( apiVersionSetTemplate , String . Concat ( @fileFolder , fileNames . apiVersionSets ) ) ;
94
+ fileWriter . WriteJSONToFile ( authorizationServerTemplate , String . Concat ( @fileFolder , fileNames . authorizationServers ) ) ;
95
+ fileWriter . WriteJSONToFile ( backendTemplate , String . Concat ( @fileFolder , fileNames . backends ) ) ;
96
+ fileWriter . WriteJSONToFile ( loggerTemplate , String . Concat ( @fileFolder , fileNames . loggers ) ) ;
97
+ fileWriter . WriteJSONToFile ( namedValueTemplate , String . Concat ( @fileFolder , fileNames . namedValues ) ) ;
98
+ fileWriter . WriteJSONToFile ( productTemplate , String . Concat ( @fileFolder , fileNames . products ) ) ;
97
99
98
- if ( linkedBaseUrl != null )
99
- {
100
- // create a master template that links to all other templates
101
- Template masterTemplate = masterTemplateExtractor . GenerateLinkedMasterTemplate ( apiTemplate , apiVersionSetTemplate , productTemplate , loggerTemplate , backendTemplate , authorizationServerTemplate , namedValueTemplate , fileNames , apiFileName , policyXMLBaseUrl ) ;
102
- fileWriter . WriteJSONToFile ( masterTemplate , String . Concat ( @fileFolder , fileNames . linkedMaster ) ) ;
103
- }
100
+ if ( linkedBaseUrl != null )
101
+ {
102
+ // create a master template that links to all other templates
103
+ Template masterTemplate = masterTemplateExtractor . GenerateLinkedMasterTemplate ( apiTemplate , apiVersionSetTemplate , productTemplate , loggerTemplate , backendTemplate , authorizationServerTemplate , namedValueTemplate , fileNames , apiFileName , policyXMLBaseUrl ) ;
104
+ fileWriter . WriteJSONToFile ( masterTemplate , String . Concat ( @fileFolder , fileNames . linkedMaster ) ) ;
105
+ }
104
106
105
- // write parameters to outputLocation
106
- fileWriter . WriteJSONToFile ( templateParameters , String . Concat ( fileFolder , fileNames . parameters ) ) ;
107
- Console . WriteLine ( "Templates written to output location" ) ;
108
- Console . WriteLine ( "Press any key to exit process:" ) ;
107
+ // write parameters to outputLocation
108
+ fileWriter . WriteJSONToFile ( templateParameters , String . Concat ( fileFolder , fileNames . parameters ) ) ;
109
+ Console . WriteLine ( "Templates written to output location" ) ;
110
+ Console . WriteLine ( "Press any key to exit process:" ) ;
109
111
#if DEBUG
110
- Console . ReadKey ( ) ;
112
+ Console . ReadKey ( ) ;
111
113
#endif
114
+ }
115
+ catch ( Exception ex )
116
+ {
117
+ Console . WriteLine ( "Error occured: " + ex . Message ) ;
118
+ throw ;
119
+ }
112
120
} ) ;
113
121
}
114
122
}
0 commit comments