@@ -195,6 +195,21 @@ protected override void OnBeginProcessing()
195
195
base . OnBeginProcessing ( ) ;
196
196
}
197
197
198
+ private string GetParameterJsonFilePath ( )
199
+ {
200
+ if ( BicepUtility . IsBicepparamFile ( TemplateParameterFile ) )
201
+ {
202
+ return null ;
203
+ }
204
+
205
+ if ( ! string . IsNullOrEmpty ( TemplateParameterUri ) )
206
+ {
207
+ return TemplateParameterUri ;
208
+ }
209
+
210
+ return this . ResolvePath ( TemplateParameterFile ) ;
211
+ }
212
+
198
213
public new virtual object GetDynamicParameters ( )
199
214
{
200
215
if ( BicepUtility . IsBicepFile ( TemplateUri ) )
@@ -233,47 +248,26 @@ protected override void OnBeginProcessing()
233
248
// Resolve the static parameter names for this cmdlet:
234
249
string [ ] staticParameterNames = this . GetStaticParameterNames ( ) ;
235
250
var combinedParameterObject = GetCombinedTemplateParameterObject ( ) ;
251
+ var jsonParamFilePath = BicepUtility . IsBicepparamFile ( TemplateParameterFile ) ? null : this . ResolvePath ( TemplateParameterFile ) ;
236
252
237
253
if ( TemplateObject != null && TemplateObject != templateObject )
238
254
{
239
255
templateObject = TemplateObject ;
240
- if ( string . IsNullOrEmpty ( TemplateParameterUri ) )
241
- {
242
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
243
- TemplateObject ,
244
- combinedParameterObject ,
245
- this . ResolvePath ( TemplateParameterFile ) ,
246
- staticParameterNames ) ;
247
- }
248
- else
249
- {
250
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
251
- TemplateObject ,
252
- combinedParameterObject ,
253
- TemplateParameterUri ,
254
- staticParameterNames ) ;
255
- }
256
+ dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
257
+ TemplateObject ,
258
+ combinedParameterObject ,
259
+ GetParameterJsonFilePath ( ) ,
260
+ staticParameterNames ) ;
256
261
}
257
262
else if ( ! string . IsNullOrEmpty ( TemplateFile ) &&
258
263
! TemplateFile . Equals ( templateFile , StringComparison . OrdinalIgnoreCase ) )
259
264
{
260
265
templateFile = TemplateFile ;
261
- if ( string . IsNullOrEmpty ( TemplateParameterUri ) )
262
- {
263
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
264
- this . ResolvePath ( TemplateFile ) ,
265
- combinedParameterObject ,
266
- this . ResolvePath ( TemplateParameterFile ) ,
267
- staticParameterNames ) ;
268
- }
269
- else
270
- {
271
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
272
- this . ResolvePath ( TemplateFile ) ,
273
- combinedParameterObject ,
274
- TemplateParameterUri ,
275
- staticParameterNames ) ;
276
- }
266
+ dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
267
+ this . ResolvePath ( TemplateFile ) ,
268
+ combinedParameterObject ,
269
+ GetParameterJsonFilePath ( ) ,
270
+ staticParameterNames ) ;
277
271
}
278
272
else if ( ! string . IsNullOrEmpty ( TemplateUri ) &&
279
273
! TemplateUri . Equals ( templateUri , StringComparison . OrdinalIgnoreCase ) )
@@ -286,22 +280,12 @@ protected override void OnBeginProcessing()
286
280
{
287
281
templateUri = protectedTemplateUri ;
288
282
}
289
- if ( string . IsNullOrEmpty ( TemplateParameterUri ) )
290
- {
291
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
292
- templateUri ,
293
- combinedParameterObject ,
294
- this . ResolvePath ( TemplateParameterFile ) ,
295
- staticParameterNames ) ;
296
- }
297
- else
298
- {
299
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
300
- templateUri ,
301
- combinedParameterObject ,
302
- TemplateParameterUri ,
303
- staticParameterNames ) ;
304
- }
283
+
284
+ dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
285
+ templateUri ,
286
+ combinedParameterObject ,
287
+ GetParameterJsonFilePath ( ) ,
288
+ staticParameterNames ) ;
305
289
}
306
290
else if ( ! string . IsNullOrEmpty ( TemplateSpecId ) &&
307
291
! TemplateSpecId . Equals ( templateSpecId , StringComparison . OrdinalIgnoreCase ) )
@@ -346,22 +330,11 @@ protected override void OnBeginProcessing()
346
330
throw ;
347
331
}
348
332
349
- if ( string . IsNullOrEmpty ( TemplateParameterUri ) )
350
- {
351
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
352
- templateObj ,
353
- combinedParameterObject ,
354
- this . ResolvePath ( TemplateParameterFile ) ,
355
- staticParameterNames ) ;
356
- }
357
- else
358
- {
359
- dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
360
- templateObj ,
361
- combinedParameterObject ,
362
- TemplateParameterUri ,
363
- staticParameterNames ) ;
364
- }
333
+ dynamicParameters = TemplateUtility . GetTemplateParametersFromFile (
334
+ templateObj ,
335
+ combinedParameterObject ,
336
+ GetParameterJsonFilePath ( ) ,
337
+ staticParameterNames ) ;
365
338
}
366
339
}
367
340
@@ -393,9 +366,12 @@ protected Hashtable GetTemplateParameterObject()
393
366
var parameterObject = new Hashtable ( ) ;
394
367
if ( bicepparamFileParameters != null )
395
368
{
369
+ BuildAndUseBicepParameters ( ) ;
396
370
AddToParametersHashtable ( bicepparamFileParameters , parameterObject ) ;
371
+ return parameterObject ;
397
372
}
398
- else if ( TemplateParameterObject != null )
373
+
374
+ if ( TemplateParameterObject != null )
399
375
{
400
376
foreach ( var parameterKey in TemplateParameterObject . Keys )
401
377
{
@@ -428,12 +404,11 @@ protected Hashtable GetTemplateParameterObject()
428
404
WriteWarning ( "${templateParameterFilePath} does not exist" ) ;
429
405
}
430
406
}
431
-
432
- // Load dynamic parameters
433
- IEnumerable < RuntimeDefinedParameter > parameters = PowerShellUtilities . GetUsedDynamicParameters ( this . AsJobDynamicParameters , MyInvocation ) ;
434
- if ( parameters . Any ( ) )
407
+
408
+ var dynamicParams = GetDynamicParametersDictionary ( ) ;
409
+ foreach ( var param in dynamicParams )
435
410
{
436
- parameters . ForEach ( dp => parameterObject [ ( ( ParameterAttribute ) dp . Attributes [ 0 ] ) . HelpMessage ] = new Hashtable { { "value" , dp . Value } } ) ;
411
+ parameterObject [ param . Key ] = new Hashtable { { "value" , param . Value } } ;
437
412
}
438
413
439
414
return parameterObject ;
@@ -503,12 +478,18 @@ protected void BuildAndUseBicepTemplate()
503
478
TemplateFile = BicepUtility . BuildFile ( this . ResolvePath ( TemplateFile ) , this . WriteVerbose , this . WriteWarning ) ;
504
479
}
505
480
506
- protected void BuildAndUseBicepParameters ( )
481
+ private IReadOnlyDictionary < string , object > GetDynamicParametersDictionary ( )
507
482
{
508
- var output = BicepUtility . BuildParams ( this . ResolvePath ( TemplateParameterFile ) , this . WriteVerbose , this . WriteWarning ) ;
483
+ var dynamicParams = PowerShellUtilities . GetUsedDynamicParameters ( this . AsJobDynamicParameters , MyInvocation ) ;
484
+
485
+ return dynamicParams . ToDictionary (
486
+ x => ( ( ParameterAttribute ) x . Attributes [ 0 ] ) . HelpMessage ,
487
+ x => x . Value ) ;
488
+ }
509
489
510
- TemplateParameterFile = null ;
511
- TemplateParameterObject = null ;
490
+ protected void BuildAndUseBicepParameters ( )
491
+ {
492
+ var output = BicepUtility . BuildParams ( this . ResolvePath ( TemplateParameterFile ) , GetDynamicParametersDictionary ( ) , this . WriteVerbose , this . WriteWarning ) ;
512
493
bicepparamFileParameters = GetParametersFromJson ( output . parametersJson ) ;
513
494
514
495
if ( TemplateObject == null &&
0 commit comments