src/dynamicparams/GetSettingsNameSet.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

using module .\New-DynamicParam.ps1

function GetSettingsNameSet {
    [CmdletBinding(PositionalBinding = $false)]
    Param(
        [Parameter(Mandatory = $true)]
        [String]$ConfigFilePath,

        [Parameter(Mandatory = $false)]
        [int]$Position = 0,

        [switch]$Mandatory
    )

    $Script:MKPowerShellConfig = Get-Content -Path $ConfigFilePath | ConvertFrom-Json -AsHashtable
    $SettingNames = $Script:MKPowerShellConfig | ForEach-Object { $_.Keys }

    New-DynamicParam -Name 'Name' -Position $Position -ValidateSet $SettingNames -Mandatory:$Mandatory.IsPresent
}