private/Update-GlobalParameters.ps1

function Update-GlobalParameters {
    [CmdletBinding()]
param
(
    [Parameter(Mandatory)] [Adf] $adf,
    [Parameter(Mandatory)] $targetAdf
)

    Write-Debug "BEGIN: Update-GlobalParameters"

    if ($adf.GlobalFactory.body.Length -gt 0)
    {
        $newGlobalParameters = New-Object 'system.collections.generic.dictionary[string,Microsoft.Azure.Management.DataFactory.Models.GlobalParameterSpecification]'
        Write-Verbose "Parsing JSON..."
        $globalFactoryObject = [Newtonsoft.Json.Linq.JObject]::Parse($adf.GlobalFactory.body)
        #$globalParametersObject = $globalFactoryObject.properties.globalParameters

        Write-Host "Adding global parameter..."
        foreach ($p in $adf.GlobalFactory.GlobalParameters.properties.globalParameters.PSObject.Properties)
        {
            # $p.Name
            # $p.Value.type
            # $p.Value.value
            $gpspec = New-Object 'Microsoft.Azure.Management.DataFactory.Models.GlobalParameterSpecification'
            $gpspec.Type = $p.Value.type
            $gpspec.Value = $p.Value.value
            $globalParameterValue = $gpspec
            $newGlobalParameters.Add($p.Name, $globalParameterValue)
        }
        $targetAdf.GlobalParameters = $newGlobalParameters

        # Write-Host "--- newGlobalParameters ---"
        #$newGlobalParameters.Values | Out-Host

        Write-Verbose "Updating $($newGlobalParameters.Count) global parameters..."
        Set-AzDataFactoryV2 -InputObject $targetAdf -Force | Out-Null
        Write-Host "Update of $($newGlobalParameters.Count) global parameters complete."
    }
    
    Write-Debug "END: Update-GlobalParameters"

}