private/StatusMessage/Set-StatusMessageBanners.ps1

function Set-StatusMessageBanners {
    <#
    .DESCRIPTION
        Adds a single or double banner to a status message.
    #>

    [OutputType([HashTable])]
    [CmdletBinding()]
    param ( [Parameter(Mandatory,ValueFromPipeline)] [HashTable] $MessageObject )

    process {

        try {

            if ( $MessageObject.Banner -or $MessageObject.DoubleBanner ) {

                $multiplier = [math]::Ceiling($MessageObject.BannerLength / $MessageObject.BannerString.Length)

                $bannerLine = ($MessageObject.BannerString * $multiplier).Substring(0, $MessageObject.BannerLength)

                if ( $MessageObject.Banner ) {
                    $MessageObject.MessageBanners = $bannerLine
                }
                else {
                    $MessageObject.MessageBanners = $bannerLine + [System.Environment]::NewLine + $bannerLine
                }

            }

            Write-Output $MessageObject

        }
        catch {

            Write-ExceptionMessage -e $_

        }

    }
}