Functions/Remove-DqEntities.ps1
Function Remove-DqEntities { <# .SYNOPSIS Deze functie geeft de gebruiker, aan de hand van een lijst van entiteiten, de mogelijkheid deze te verwijderen uit een DQ Monitor Webservice. .DESCRIPTION De Remove-DqEntities functie haalt een lijst op met entiteiten uit een DQ Monitor Webservice die kunnen worden verwijderd en presenteert deze. Via een keuzemenu kan de gebruiker een of meerdere entiteiten verwijderen. Voordat deze functie gebruikt wordt, zorg ervoor dat de Context is gezet via functie Set-DqContext. .INPUTS Geen. .OUTPUTS Geen. .EXAMPLE PS> Remove-DqEntities Maak een keuze uit een van onderstaande controles (kies 'Q' om af te breken): # Naam Meervoursnaam Omschrijving ----- ------------------------- --------------- ---------------------------------------- [ 1] contract Contracten Een lijst van contracten [ 2] Wooneenheid Wooneenheden Lijst van wooneenheden Keuze (1-2 of q): .LINK Set-DqContext #> [CmdletBinding()] Param() Write-Verbose "Verkrijgen van lijst van entiteiten die verwijderd kunnen worden..." $Deleted = 0 While ($True) { # We only support custom entities at this point. [Array]$CustomEntities = Get-DqEntities -CustomOnly If ($CustomEntities.Count -eq 0) { If ($Deleted -gt 0) { Write-Warning "Geen entiteiten meer gevonden die verwijderd kunnen worden." } Else { Write-Warning "Geen entiteiten gevonden die verwijderd kunnen worden." } Return; } $LengthMaxLength = ($CustomEntities | Select -ExpandProperty Name | Measure-Object -Maximum -Property Length).Maximum $PluralNameMaxLength = ($CustomEntities | Select -ExpandProperty PluralName | Measure-Object -Maximum -Property Length).Maximum Write-Host "" Write-Host "Maak een keuze uit een van onderstaande entiteiten (kies 'Q' om af te breken):" Write-Host " " Write-Host " #" "Naam".PadRight($LengthMaxLength) "Meervoudsnaam".PadRight($PluralNameMaxLength) "Omschrijving" Write-Host "-----" "-".PadRight($LengthMaxLength, "-") "-".PadRight($PluralNameMaxLength, "-") "-".PadRight(40, "-") For($x=1;$x -le $CustomEntities.Count; $x++) { $Entity = $CustomEntities[$x-1] $Description = $Entity.Description.Replace([Char]10, ' ').Replace([Char]13, ' ') If ($Description.Length -gt 140) { $Description = $Description.Substring(0, 140); } Write-Host ([String]::Format("[{0}] {1} {2} {3}", $x.ToString().PadLeft(3, " "), $Entity.Name.PadRight($LengthMaxLength), $Entity.PluralName.PadRight($PluralNameMaxLength), $Description)); } Write-Host " " $Keuze = "" Do { Do { $Keuze = Read-Host "Keuze (1-$($CustomEntities.Count) of q)" } While ($Keuze.Trim() -notmatch '^([0-9]{1,2})$|^[qQ]$') If($Keuze -match "^\d+$") { # Make sure we do not get out of bounds. If ([Int]$Keuze - 1 -gt ($CustomEntities.Count - 1) -or [Int]$Keuze -eq 0) { $Keuze = "" } } } While ([String]::IsNullOrEmpty($Keuze)) Write-Host "" If ($Keuze.ToLowerInvariant().Equals("q")) { Write-Host "Handeling afgebroken." Return; } $Entity = $CustomEntities[$Keuze-1]; $Result = Remove-DqEntity -EntityObject $Entity If ($Result) { $Deleted += 1; } } } |