@@ -410,6 +410,7 @@ public async Task<Template<ApiTemplateResources>> GenerateApiTemplateAsync(
410
410
if ( apiTemplate ? . HasResources ( ) == true )
411
411
{
412
412
apiTemplate . TypedResources . FileName = FileNameGenerator . GenerateExtractorAPIFileName ( singleApiName , this . extractorParameters . FileNames . BaseFileName ) ;
413
+ apiTemplate . TypedResources . ParametersFileName = FileNameGenerator . GenerateExtractorAPIParametersFileName ( singleApiName ) ;
413
414
414
415
await FileWriter . SaveAsJsonAsync (
415
416
apiTemplate ,
@@ -459,6 +460,79 @@ await FileWriter.SaveAsJsonAsync(
459
460
return templateParameters ;
460
461
}
461
462
463
+ public async Task GenerateResourceParametersFiles (
464
+ string baseFilesGenerationDirectory ,
465
+ Template mainParametersTemplate ,
466
+ Template < ApiTemplateResources > apiTemplate = null ,
467
+ Template < PolicyTemplateResources > policyTemplate = null ,
468
+ Template < ApiVersionSetTemplateResources > apiVersionSetTemplate = null ,
469
+ Template < ProductTemplateResources > productsTemplate = null ,
470
+ Template < ProductApiTemplateResources > productApisTemplate = null ,
471
+ Template < TagApiTemplateResources > apiTagsTemplate = null ,
472
+ Template < LoggerTemplateResources > loggersTemplate = null ,
473
+ Template < BackendTemplateResources > backendsTemplate = null ,
474
+ Template < AuthorizationServerTemplateResources > authorizationServersTemplate = null ,
475
+ Template < NamedValuesResources > namedValuesTemplate = null ,
476
+ Template < TagTemplateResources > tagTemplate = null ,
477
+ Template < GroupTemplateResources > groupTemplate = null ,
478
+ Template < IdentityProviderResources > identityProviderTemplate = null ,
479
+ Template < SchemaTemplateResources > schemaTemplate = null ,
480
+ Template < OpenIdConnectProviderResources > openIdConnectProviderTemplate = null ,
481
+ Template < PolicyFragmentsResources > policyFragmentsTemplate = null )
482
+ {
483
+ this . RenameExistingParametersDirectory ( baseFilesGenerationDirectory ) ;
484
+
485
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , apiTemplate ? . TypedResources . ParametersFileName , apiTemplate , mainParametersTemplate ) ;
486
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . GlobalServicePolicyParameters , policyTemplate , mainParametersTemplate ) ;
487
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . ApiVersionSetsParameters , apiVersionSetTemplate , mainParametersTemplate ) ;
488
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . ProductsParameters , productsTemplate , mainParametersTemplate ) ;
489
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . ProductAPIsParameters , productApisTemplate , mainParametersTemplate ) ;
490
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . TagApiParameters , apiTagsTemplate , mainParametersTemplate ) ;
491
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . LoggersParameters , loggersTemplate , mainParametersTemplate ) ;
492
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . BackendsParameters , backendsTemplate , mainParametersTemplate ) ;
493
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . AuthorizationServersParameters , authorizationServersTemplate , mainParametersTemplate ) ;
494
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . NamedValuesParameters , namedValuesTemplate , mainParametersTemplate ) ;
495
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . TagsParameters , tagTemplate , mainParametersTemplate ) ;
496
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . GroupsParameters , groupTemplate , mainParametersTemplate ) ;
497
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . IdentityProvidersParameters , identityProviderTemplate , mainParametersTemplate ) ;
498
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . SchemaParameters , schemaTemplate , mainParametersTemplate ) ;
499
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . OpenIdConnectProvidersParameters , openIdConnectProviderTemplate , mainParametersTemplate ) ;
500
+ await this . GenerateResourceParametersFile ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . PolicyFragmentsParameters , policyFragmentsTemplate , mainParametersTemplate ) ;
501
+ }
502
+
503
+ public async Task GenerateResourceParametersFile < TTemplateResource > ( string baseFilesGenerationDirectory , string fileName , Template < TTemplateResource > resourceTemplate , Template mainParametersTemplate ) where TTemplateResource : ITemplateResources , new ( )
504
+ {
505
+ if ( string . IsNullOrEmpty ( fileName ) || string . IsNullOrEmpty ( baseFilesGenerationDirectory ) )
506
+ {
507
+ this . logger . LogWarning ( "Filename or directory for parameters file generation is null or empty, skipping the generation" ) ;
508
+ return ;
509
+ }
510
+
511
+ if ( resourceTemplate ? . TypedResources ? . HasContent ( ) == true )
512
+ {
513
+ var parametersTemplate = this . parametersExtractor . CreateResourceTemplateParameterTemplate ( resourceTemplate , mainParametersTemplate ) ;
514
+
515
+ if ( ! parametersTemplate . Parameters . IsNullOrEmpty ( ) )
516
+ {
517
+ await FileWriter . SaveAsJsonAsync (
518
+ parametersTemplate ,
519
+ directory : Path . Combine ( baseFilesGenerationDirectory , this . extractorParameters . FileNames . ParametersDirectory ) ,
520
+ fileName : fileName ) ;
521
+ }
522
+ }
523
+ }
524
+
525
+ void RenameExistingParametersDirectory ( string baseDirectoryLocation )
526
+ {
527
+ var parametersLocation = Path . Combine ( baseDirectoryLocation , this . extractorParameters . FileNames . ParametersDirectory ) ;
528
+ if ( Directory . Exists ( parametersLocation ) )
529
+ {
530
+ var creationDateTime = Directory . GetCreationTime ( parametersLocation ) . ToString ( "yyyyMMddHHmmss" ) ;
531
+ var newParameterDirectory = $ "{ this . extractorParameters . FileNames . ParametersDirectory } { creationDateTime } ";
532
+ Directory . Move ( parametersLocation , Path . Combine ( baseDirectoryLocation , newParameterDirectory ) ) ;
533
+ }
534
+ }
535
+
462
536
public async Task < Template < MasterTemplateResources > > GenerateMasterTemplateAsync (
463
537
string baseFilesGenerationDirectory ,
464
538
ApiTemplateResources apiTemplateResources = null ,
@@ -1035,8 +1109,28 @@ async Task GenerateTemplates(
1035
1109
await this . GenerateGatewayTemplateAsync ( singleApiName , baseFilesGenerationDirectory ) ;
1036
1110
await this . GenerateGatewayApiTemplateAsync ( singleApiName , multipleApiNames , baseFilesGenerationDirectory ) ;
1037
1111
await this . GenerateApiManagementServiceTemplate ( baseFilesGenerationDirectory ) ;
1038
- await this . GenerateParametersTemplateAsync ( apisToExtract , loggerTemplate . TypedResources , backendTemplate . TypedResources , namedValueTemplate . TypedResources , identityProviderTemplate . TypedResources , openIdConnectProviderTemplate . TypedResources , baseFilesGenerationDirectory ) ;
1112
+ var parametersTemplate = await this . GenerateParametersTemplateAsync ( apisToExtract , loggerTemplate . TypedResources , backendTemplate . TypedResources , namedValueTemplate . TypedResources , identityProviderTemplate . TypedResources , openIdConnectProviderTemplate . TypedResources , baseFilesGenerationDirectory ) ;
1039
1113
1114
+ await this . GenerateResourceParametersFiles (
1115
+ baseFilesGenerationDirectory ,
1116
+ parametersTemplate ,
1117
+ apiTemplate : apiTemplate ,
1118
+ policyTemplate : globalServicePolicyTemplate ,
1119
+ productApisTemplate : productApiTemplate ,
1120
+ productsTemplate : productTemplate ,
1121
+ apiVersionSetTemplate : apiVersionSetTemplate ,
1122
+ authorizationServersTemplate : authorizationServerTemplate ,
1123
+ tagTemplate : tagTemplate ,
1124
+ apiTagsTemplate : apiTagTemplate ,
1125
+ loggersTemplate : loggerTemplate ,
1126
+ namedValuesTemplate : namedValueTemplate ,
1127
+ backendsTemplate : backendTemplate ,
1128
+ groupTemplate : groupTemplate ,
1129
+ identityProviderTemplate : identityProviderTemplate ,
1130
+ openIdConnectProviderTemplate : openIdConnectProviderTemplate ,
1131
+ schemaTemplate : schemasTempate ,
1132
+ policyFragmentsTemplate : policyFragmentTemplate ) ;
1133
+
1040
1134
await this . GenerateMasterTemplateAsync (
1041
1135
baseFilesGenerationDirectory ,
1042
1136
apiTemplateResources : apiTemplate . TypedResources ,
0 commit comments