Private/Wizard/Invoke-CgrActivityStage.ps1
|
function Invoke-CgrActivityStage { [CmdletBinding()] param( [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string] $Message, [Parameter(Mandatory)] [scriptblock] $Action ) Send-CgrActivityEvent -Name $Name -State Started -Message $Message try { $result = & $Action $completedMessage = Get-CgrActivityCompletionMessage -Name $Name -DefaultMessage $Message -Result $result $terminalState = Get-CgrActivityTerminalState -Name $Name -Result $result Send-CgrActivityEvent -Name $Name -State $terminalState -Message $completedMessage return $result } catch { Send-CgrActivityEvent -Name $Name -State Failed -Message $Message throw } } |