Private/Get-BridgeStatusAdvice.ps1
|
function Get-BridgeStatusAdvice { [CmdletBinding()] <# .SYNOPSIS Προτείνει αν αξίζει να περιμένετε το άνοιγμα της γέφυρας. .DESCRIPTION Η Get-BridgeStatusAdvice λαμβάνει τον χρόνο σε λεπτά μέχρι να ανοίξει η γέφυρα και επιστρέφει μήνυμα για το αν πρέπει να περιμένετε. .PARAMETER MinutesUntilOpen Τα λεπτά που απομένουν μέχρι να ανοίξει η γέφυρα. .PARAMETER MaxWaitTimeMinutes Ο μέγιστος χρόνος αναμονής σε λεπτά (προεπιλογή: 12 λεπτά). .PARAMETER Configuration Το configuration object που περιέχει τις ρυθμίσεις. .OUTPUTS [string] - String με προτεινόμενο status και μήνυμα. .EXAMPLE Get-BridgeStatusAdvice -MinutesUntilOpen 15 .EXAMPLE Get-BridgeStatusAdvice -MinutesUntilOpen 8 -MaxWaitTimeMinutes 10 .NOTES Αν τα λεπτά είναι περισσότερα από το MaxWaitTimeMinutes επιστρέφεται σύσταση να μην περιμένετε. #> [OutputType([string])] param ( [Parameter(Mandatory)][int]$MinutesUntilOpen, [Parameter()][ValidateRange(1, 120)][int]$MaxWaitTimeMinutes, [Parameter()][PSCustomObject]$Configuration ) # Get max wait time from parameter, configuration, or use fallback if (-not $MaxWaitTimeMinutes) { $MaxWaitTimeMinutes = if ($Configuration -and $Configuration.DefaultMaxWaitTimeMinutes) { $Configuration.DefaultMaxWaitTimeMinutes } else { 12 } } # Get advice messages from configuration or use fallback $doNotWaitMessage = if ($Configuration -and $Configuration.AdviceMessages -and $Configuration.AdviceMessages.DoNotWait) { $Configuration.AdviceMessages.DoNotWait } else { 'Είναι προτιμότερο να μην περιμένεις' } $waitMessage = if ($Configuration -and $Configuration.AdviceMessages -and $Configuration.AdviceMessages.Wait) { $Configuration.AdviceMessages.Wait } else { 'Είναι προτιμότερο να περιμένεις' } if ($MinutesUntilOpen -gt $MaxWaitTimeMinutes) { return $doNotWaitMessage } return $waitMessage } |