public/release/Add-PSTSReleaseDefinitionTask.ps1

function Add-PSTSReleaseDefinitionTask
{
    param(
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][ReleaseDefinitionTaskTemplate] $task,
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][int] $position,
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][object] $releaseDefinition,
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][int] $envId
    )

    process {

        [System.Collections.ArrayList]$tasks=$releaseDefinition.environments[$envId].deployPhases.workflowTasks
        $tasks.Insert($position, $task)
        $releaseDefinition.environments[$envid].deployPhases | Add-Member  -MemberType NoteProperty -Name workflowTasks -Value $tasks -Force
        return $releaseDefinition
    }
}