public/release/Get-PSTSReleaseDefinitionTaskTemplate.ps1
function Get-PSTSReleaseDefinitionTaskTemplate { [CmdletBinding(DefaultParameterSetName="inline")] param( [Parameter(Mandatory=$true)][string] $taskId, [Parameter(Mandatory=$true)][string] $name, [Parameter(Mandatory=$true)][hashtable] $inputs ) process { $task = Get-PSTSReleaseDefinitionTask ` -id $taskId | ` Sort-Object ` -Property @{Expression = { $_.version.major }; Descending = $False} | ` Select-Object ` -Last 1 if ($null -eq $task) { return $null } $template = [ReleaseDefinitionTaskTemplate]::new(` $taskId, ` "{0}.*" -f $task.version.major ` ) $template.name = $name $template.enabled = $true $template.inputs = New-Object ` -TypeName PSObject $task.inputs |Foreach-Object -Process { $inputValue = $inputs[$_.name] $template.inputs | ` Add-Member ` -NotePropertyName $_.name ` -NotePropertyValue $(iif $inputValue $inputValue $_.defaultValue) } return $template } } |