Private/GetUrls.ps1

. "$PSScriptRoot/GetSingleUrl.ps1";

# Make a get request to all $urls while forcing the instance using the ARRAfinity cookie with $instanceGuid
function GetUrls(
    [Parameter(Mandatory=$True)]
    [string]$defaultHostName,
    [Parameter(Mandatory=$True)]
    [string[]]$urls,
    [Parameter(Mandatory=$False)]
    [string]$instanceGuid) {

    $urlCount = @($urls).length;
    Write-Host "Getting $urlCount urls for instance $instanceGuid";
    for($i = 0; $i -lt $urlCount; $i++){
        $url = $urls[$i];
        $index = $i + 1;

        try {
            Write-Progress -Id 99 -ParentId 91 -Activity ("Getting $urlCount urls for instance $instanceGuid") `
                -status "Processing $index / $urlCount urls" `
                -percentComplete (($i / $urlCount) * 100);

            $httpResponse = GetSingleUrl -defaultHostName $defaultHostName -url $url -instanceGuid $instanceGuid;
            $responseMessage = $httpResponse.StatusDescription;
            $responseCode = $httpResponse.StatusCode;
            Write-Host "$responseMessage ($responseCode)" -foregroundcolor "Green";
        }
        catch {
            if($_.Exception.Response -eq $null) { throw $_; }
            $responseMessage = $_.Exception.Response.StatusDescription;
            $responseCode = $_.Exception.Response.StatusCode.Value__;
            $foregroundColor = "Magenta";

            # Red if 5xx status code
            if([math]::Round($responseCode/100) % 5 -eq 0) {
                $foregroundColor = "Red"
            }

            Write-Host "$responseMessage ($responseCode)" -foregroundcolor $foregroundColor;
        }
    }

    Write-Progress -Id 99 -ParentId 91 -Activity ("Getting $urlCount urls for instance $instanceGuid") `
        -status "Completed $urlCount urls" `
        -percentComplete 100 `
        -Completed;
}