Private/Store/Channel/Add-Channel.ps1
function Add-Channel { [CmdletBinding()] param ( [Parameter(Mandatory = $true)][String]$Name ,[Parameter(Mandatory = $true)][String]$Type ,[Parameter(Mandatory = $true)][PSCustomObject]$Definition ) begin { } process { # Check if the channel already exists try { $channel = @( Get-Channel -Name $Name ) If ( $channel.count -gt 0 ) { throw "Channel $( $Name ) already exists" } } catch { # Do nothing } If ( $script:store.channels.count -ge 1 ) { $existingChannels = [Array]@( $script:store.channels ) } else { $existingChannels = [Array]@() } # Add the channel to the store $script:store.channels = $existingChannels + [PSCustomObject]@{ "ChannelId" = [guid]::NewGuid().ToString() "Name" = $Name "Type" = $Type # Telegram, Teams, Email, Slack "Definition" = $Definition "Targets" = [Array]@() "DateAdded" = [datetime]::Now.ToString("yyyyMMddHHmmss") "DateModified" = [datetime]::Now.ToString("yyyyMMddHHmmss") } # Now save that Set-Store } end { } } |