internal/functions/Wait-AzureFailureJob.ps1

function Wait-AzureFailureJob {
    param(
        [Parameter(Mandatory=$true)]
        [object[]]$Jobs,

        [Parameter(Mandatory=$true)]
        [string]$Activity
    )

    $waitStartTime = Get-Date
    do {
        $ProgressCount = $Jobs.Count - ($Jobs | Where-Object { $_.State -ne "Completed" }).Count
        $progressPercent = $ProgressCount / $Jobs.Count * 100
        $elapsedTime = (Get-Date) - $waitStartTime
        Write-Progress -Id 1 -Activity $Activity -Status ("{0:N0}% [{1}/{2}] Elapsed Time: {3:hh\:mm\:ss}" -f $progressPercent, $ProgressCount, $Jobs.Count, $elapsedTime) -PercentComplete $progressPercent
        Start-Sleep -Seconds 1
    }
    while ($Jobs.state -contains "Running")
    Write-Progress -Id 1 -Completed
}