#Uses RunAsUser and BurntToast to display a popup message to the currently logged on user.
#Accepts all arguments as the message text or can quote with 'your message here' if using special characters in the message.
#Optional: C:\Program Files\TacticalAgent\BurntToastLogo.png will be displayed if the file exists. Image dimensions 478px (W) x 236px (H)

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

if (Get-PackageProvider -Name NuGet) {
    #Write-Host "NuGet Already Added"
} 
else {
    Write-Host "Installing NuGet"
    Install-PackageProvider -Name NuGet -Force
} 

if (Get-Module -ListAvailable -Name BurntToast) {
    #Write-Host "BurntToast Already Installed"
} 
else {
    Write-Host "Installing BurntToast"
    Install-Module -Name BurntToast -Force
}
 
if (Get-Module -ListAvailable -Name RunAsUser) {
    #Write-Host "RunAsUser Already Installed"
} 
else {
    Write-Host "Installing RunAsUser"
    Install-Module -Name RunAsUser -Force
}

Set-Content -Path c:\windows\temp\message.txt -Value $args

Invoke-AsCurrentUser -scriptblock {
 
    $messagetext = Get-Content -Path c:\windows\temp\message.txt
    $heroimage = New-BTImage -Source 'C:\Program Files\TacticalAgent\BurntToastLogo.png' -HeroImage
    $Text1 = New-BTText -Content  "Message from IT"
    $Text2 = New-BTText -Content "$messagetext"
    $Button = New-BTButton -Content "Snooze" -snooze -id 'SnoozeTime'
    $Button2 = New-BTButton -Content "Dismiss" -dismiss
    $5Min = New-BTSelectionBoxItem -Id 5 -Content '5 minutes'
    $10Min = New-BTSelectionBoxItem -Id 10 -Content '10 minutes'
    $1Hour = New-BTSelectionBoxItem -Id 60 -Content '1 hour'
    $4Hour = New-BTSelectionBoxItem -Id 240 -Content '4 hours'
    $1Day = New-BTSelectionBoxItem -Id 1440 -Content '1 day'
    $Items = $5Min, $10Min, $1Hour, $4Hour, $1Day
    $SelectionBox = New-BTInput -Id 'SnoozeTime' -DefaultSelectionBoxItemId 10 -Items $Items
    $action = New-BTAction -Buttons $Button, $Button2 -inputs $SelectionBox
    $Binding = New-BTBinding -Children $Text1, $Text2 -HeroImage $heroimage
    $Visual = New-BTVisual -BindingGeneric $Binding
    $Content = New-BTContent -Visual $Visual -Actions $action
    Submit-BTNotification -Content $Content
}


Remove-Item -Path c:\windows\temp\message.txt
