initial Commit
This commit is contained in:
44
Private/New-ConfigurationDataResolutionContext.ps1
Normal file
44
Private/New-ConfigurationDataResolutionContext.ps1
Normal file
@@ -0,0 +1,44 @@
|
||||
function New-ConfigurationDataResolutionContext {
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[System.Collections.Hashtable]
|
||||
$ConfigurationData
|
||||
)
|
||||
|
||||
$Context = [PSCustomObject]@{
|
||||
Parameters = @{}
|
||||
Variables = @{}
|
||||
VariableDefinitions = @{}
|
||||
ResolvingVariables = @{}
|
||||
}
|
||||
|
||||
if($ConfigurationData.ContainsKey("Parameters") -and $null -ne $ConfigurationData.Parameters){
|
||||
foreach($Entry in $ConfigurationData.Parameters.GetEnumerator()){
|
||||
$Definition = $Entry.Value
|
||||
|
||||
$HasExplicitValue = (Test-ConfigurationDataMap -Value $Definition) -and (Test-ConfigurationDataMapContainsKey -Map $Definition -Key "Value")
|
||||
$HasDefaultValue = (Test-ConfigurationDataMap -Value $Definition) -and (Test-ConfigurationDataMapContainsKey -Map $Definition -Key "DefaultValue")
|
||||
|
||||
if($HasExplicitValue){
|
||||
$Context.Parameters[$Entry.Name] = Get-ConfigurationDataMapValue -Map $Definition -Key "Value"
|
||||
}elseif($HasDefaultValue){
|
||||
$Context.Parameters[$Entry.Name] = Get-ConfigurationDataMapValue -Map $Definition -Key "DefaultValue"
|
||||
}else{
|
||||
$Context.Parameters[$Entry.Name] = $Definition
|
||||
}
|
||||
|
||||
if(Test-ConfigurationDataMap -Value $Definition){
|
||||
Assert-ConfigurationDataParameter -Name $Entry.Name -Definition $Definition -Value $Context.Parameters[$Entry.Name] -HasValue:($HasExplicitValue -or $HasDefaultValue)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($ConfigurationData.ContainsKey("Variables") -and $null -ne $ConfigurationData.Variables){
|
||||
foreach($Entry in $ConfigurationData.Variables.GetEnumerator()){
|
||||
$Context.VariableDefinitions[$Entry.Name] = $Entry.Value
|
||||
}
|
||||
}
|
||||
|
||||
return $Context
|
||||
}
|
||||
Reference in New Issue
Block a user