functions/Invoke-SynergyDataImport.ps1

<#
.Synopsis
   Command to Send XML to Synergy Web Service for SIS Data Import
.DESCRIPTION
   Uses Synergy Web Services to send data for import.
#>

function Invoke-SynergyDataImport {
    [CmdletBinding()]
    [Alias()]
    Param
    (

        # Credential
        [ValidateNotNullOrEmpty()]
        [System.Management.Automation.PSCredential]
        $Credential = ( Get-Credential ),

        #WebRequestSession
        [Microsoft.PowerShell.Commands.WebRequestSession]
        $WebSession = [Microsoft.PowerShell.Commands.WebRequestSession]::new(),

        # Uri
        [System.Uri]
        [Alias("SynergyUri")]
        $Uri,

        # DataImportXML
        [xml]
        $DataImportXML,

        # WebServiceHandle
        [string]
        $Handle = 'K12.IntegrationInfo.SISDataImport',

        # MethodName
        [string]
        $MethodName = 'ImportData'


    )
    $username = $Credential.UserName
    $password = $Credential.GetNetworkCredential().Password
    $uri = $Uri.AbsoluteUri + "/service/RTCommunication.asmx/ProcessWebServiceRequest"


    [xml]$reXML = $DataImportXML

    ### STEP 1 Request ###
    $paramReportExecute = $reXML.OuterXml

    $Body = @{
        userID = $username
        password = $password
        webServiceHandleName = $Handle
        methodName = $MethodName
        paramStr = $paramReportExecute
    }
    $Params = @{
        Uri = $Uri
        Method = 'post'
        Body = $Body
        WebSession = $WebSession
    }

    #[xml]$requestXml = $proxy.ProcessWebServiceRequest($username, $password, $Handle, $MethodName, "$paramReportExecute")
    Write-Progress -Activity "Sending Synergy Data..." -Status "Sending Request" -PercentComplete 25
    $requestResponse = Invoke-WebRequest @Params
    # $requestXml = [xml](([xml]$requestResponse.Content).DocumentElement.InnerText)
    $requestXml = [xml]$requestResponse.string.'#text'
    $data = $requestXml.InnerXml

    Write-Progress -Activity "Running Synergy Report..." -Completed -Status "All done." -PercentComplete 100
    return $data

}