functions/Set-MyNumber.ps1
Function Set-MyNumber { [CmdletBinding(SupportsShouldProcess, DefaultParameterSetName = 'value')] [OutputType('MyNumber')] Param( [Parameter(Position = 0, ValueFromPipeline, Mandatory)] [MyNumber]$Number, [Parameter(Position = 1, Mandatory, ParameterSetName = 'Value')] [double]$Value, [Parameter(ParameterSetName = 'script')] [scriptblock]$CustomScriptBlock ) Begin {} Process { switch ($PSCmdlet.ParameterSetName) { 'value' { if ($PSCmdlet.ShouldProcess('MyNumber', "Set number to $value")) { $number.number = $Value $number.refresh() } } #value 'script' { if ($PSCmdlet.ShouldProcess('MyNumber', "Set custom script to $CustomScriptblock")) { $number.CustomScriptBlock = $CustomScriptBlock $number.refresh() } } } } End {} } |