Public/DataImportTool/Set-ProcessConfigurationColumns.ps1
|
function Set-ProcessConfigurationColumns { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$Path, [Parameter(Mandatory)] [string]$BacklogElement, [Parameter(Mandatory)] [hashtable[]]$Columns ) Write-FixStep "Replacing Columns on '$BacklogElement' with $($Columns.Count) column(s): $(($Columns | ForEach-Object { $_.ReferenceName }) -join ', ')" Update-ProcessConfigurationFixFile -Path $Path -Mutation { param($xml) $backlog = $xml.ProjectProcessConfiguration.SelectSingleNode($BacklogElement) if (-not $backlog) { throw "Process configuration element '$BacklogElement' was not found." } $existing = $backlog.SelectSingleNode('Columns') if ($existing) { Write-FixStep " removing $($existing.ChildNodes.Count) existing column(s)" [void]$backlog.RemoveChild($existing) } $columnsNode = $xml.CreateElement('Columns') foreach ($column in $Columns) { $columnNode = $xml.CreateElement('Column') $columnNode.SetAttribute('refname', [string]$column.ReferenceName) $columnNode.SetAttribute('width', [string]$column.Width) [void]$columnsNode.AppendChild($columnNode) } [void]$backlog.AppendChild($columnsNode) } } |