Private/New-Form.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function New-Form {
    Param(
        [Parameter(Mandatory)]
        [System.Collections.Hashtable]$FormData,
        [Parameter(Mandatory)]
        [string]$BoundaryCommonPart
    )

    $BoundaryTemplate = '--{0}{{0}}' -f $BoundaryCommonPart

    $sb = New-Object -TypeName 'System.Text.StringBuilder'

    [void]$sb.AppendLine($BoundaryTemplate)

    foreach ($Key in $FormData.Keys) {
        $FormPiece = New-FormPiece -Name $Key -Value $FormData.$Key -BoundaryTemplate $BoundaryTemplate
        [void]$sb.AppendLine($FormPiece)
    }

    $Result = $sb.ToString()
    '{0}--' -f $Result.TrimEnd("`n").TrimEnd("`r")
}