Handlers/PSClientManager.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
## PSClientManager

$ClientFeatureHandler = {
    param($Context, [ref]$TabExpansionHasOutput)
    $Argument = $Context.Argument
    switch -exact ($Context.Parameter) {
        'Name' {
            $TabExpansionHasOutput.Value = $true
            Get-ClientFeature "$Argument*" | Sort-Object Name | New-TabItem -Value {$_.Name} -Text {$_.Name} -ResultType ParameterValue
        }
    }
}
$AddClientFeatureHandler = {
    param($Context, [ref]$TabExpansionHasOutput)
    $Argument = $Context.Argument
    switch -exact ($Context.Parameter) {
        'Name' {
            $TabExpansionHasOutput.Value = $true
            Get-ClientFeature "$Argument*" | Where-Object {$_.State -eq "Disabled"} | Sort-Object Name |
                New-TabItem -Value {$_.Name} -Text {$_.Name} -ResultType ParameterValue
        }
    }
}
$RemoveClientFeatureHandler = {
    param($Context, [ref]$TabExpansionHasOutput)
    $Argument = $Context.Argument
    switch -exact ($Context.Parameter) {
        'Name' {
            $TabExpansionHasOutput.Value = $true
            Get-ClientFeature "$Argument*" | Where-Object {$_.State -eq "Enabled"} | Sort-Object Name |
                New-TabItem -Value {$_.Name} -Text {$_.Name} -ResultType ParameterValue
        }
    }
}
    
Register-TabExpansion "Add-ClientFeature" $AddClientFeatureHandler -Type "Command"
Register-TabExpansion "Get-ClientFeature" $ClientFeatureHandler -Type "Command"
Register-TabExpansion "Get-ClientFeatureInfo" $ClientFeatureHandler -Type "Command"
Register-TabExpansion "Remove-ClientFeature" $RemoveClientFeatureHandler -Type "Command"