Private/Get-FPControlData.ps1

function Get-FPControlData {
    <#
    .SYNOPSIS
        Import XML data from Control File
    .DESCRIPTION
        Import XML data from Control File
    .PARAMETER FilePath
        Full path or URI to XML file
    #>

        param (
            [parameter(Mandatory = $True, HelpMessage = "Path or URI to XML control file")]
            [ValidateNotNullOrEmpty()]
            [string] $FilePath
        )
        Write-FPLog "preparing to import control file: $FilePath"
        if ($FilePath.StartsWith("http")) {
            try {
                [xml]$result = ((New-Object System.Net.WebClient).DownloadString($FilePath))
            }
            catch {
                Write-FPLog -Category 'Error' -Message "failed to import data from Uri: $FilePath"
                Write-Output -3
                break;
            }
            Write-FPLog 'control data loaded successfully'
        }
        else {
            if (Test-Path $FilePath) {
                try {
                    [xml]$result = Get-Content -Path $FilePath
                }
                catch {
                    Write-FPLog -Category 'Error' -Message "unable to import control file: $FilePath"
                    Write-Output -4
                    break;
                }
            }
            else {
                Write-FPLog -Category 'Error' -Message "unable to locate control file: $FilePath"
                Write-Output -5
                break;
            }
        }
        Write-Output $result
}