Reporter.ps1

Function WriteDownloadReport {
    Param(
        [Parameter(Mandatory=$True)]
        [Object]
        $DownloadStats
    )

    $ReportChecksums = $False
    $NumPassed = $DownloadStats.FilesChecksumPassed.Count
    $NumSkipped = $DownloadStats.FilesChecksumSkipped.Count
    $NumFailed = $DownloadStats.FilesChecksumFailed.Count
    If (($NumPassed + $NumSkipped + $NumFailed) -gt 0) {
        $ReportChecksums = $True
    }

    Write-Output 'Download Stats'
    Write-Output '--------------------'
    Write-Output "$($DownloadStats.FilesFound.Count) file(s) downloaded"
    Write-Output "$($DownloadStats.FilesNotFound.Count) file(s) not downloaded due to error"
    If ($ReportChecksums) {
        Write-Output "$($NumPassed) checksums passed"
        Write-Output "$($NumSkipped) checksums skipped"
        Write-Output "$($NumFailed) checksums failed"
    }
}