Private/New-AzTableEntities.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Function New-AzTableEntities {
    Param(
        [parameter(Mandatory = $true)]
        $Items,

        [parameter(Mandatory = $true)]
        $PartitionKey,

        [parameter(Mandatory = $false)]
        $rowKeyField      
    )

    $Entities = New-Object -TypeName 'System.Collections.ArrayList'
    
    foreach ($item in $Items) {

        if ($PSBoundParameters.ContainsKey('rowKeyField')) {
            $RowKey = $item.($rowKeyField)
        }
        else {
            if ($item.id) {
                $RowKey = $item.id
            }
            else {
                throw "wtf is the rowkey gonna be..."
            }
        }
        $Entity = New-TableStorageRowEntity -PartitionKey $PartitionKey -RowKey $RowKey -Data $Item
        $Entities.Add($Entity) | Out-Null
    }

    return $Entities

}