2022-12-06 13:34:52 -05:00
|
|
|
|
|
2020-04-09 09:57:20 -04:00
|
|
|
|
function CreateEnum {
|
|
|
|
|
|
[CmdletBinding()]
|
|
|
|
|
|
param
|
|
|
|
|
|
(
|
|
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
|
|
|
|
[string]$EnumName,
|
2021-07-23 22:06:42 +02:00
|
|
|
|
|
2020-04-09 09:57:20 -04:00
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
|
|
|
|
[pscustomobject]$Values,
|
2021-07-23 22:06:42 +02:00
|
|
|
|
|
2020-04-09 09:57:20 -04:00
|
|
|
|
[switch]$PassThru
|
|
|
|
|
|
)
|
2021-07-23 22:06:42 +02:00
|
|
|
|
|
2020-04-09 09:57:20 -04:00
|
|
|
|
$definition = @"
|
|
|
|
|
|
public enum $EnumName
|
|
|
|
|
|
{`n$(foreach ($value in $values) {
|
|
|
|
|
|
"`t$($value.label) = $($value.value),`n"
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
"@
|
|
|
|
|
|
if (-not ([System.Management.Automation.PSTypeName]"$EnumName").Type) {
|
|
|
|
|
|
#Write-Host $definition -ForegroundColor Green
|
|
|
|
|
|
Add-Type -TypeDefinition $definition -PassThru:$PassThru
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Write-Warning "EnumType $EnumName already exists."
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|