Functions/Remove-DqChecks.ps1
Function Remove-DqChecks { <# .SYNOPSIS Deze functie geeft de gebruiker, aan de hand van een lijst van controles, de mogelijkheid deze te verwijderen uit een DQ Monitor Webservice. .DESCRIPTION De Remove-DqChecks functie haalt een lijst op met controles uit een DQ Monitor Webservice die kunnen worden verwijderd en presenteert deze. Via een keuzemenu kan de gebruiker een of meerdere controles verwijderen. Voordat deze functie gebruikt wordt, zorg ervoor dat de Context is gezet via functie Set-DqContext. .INPUTS Geen. .OUTPUTS Geen. .EXAMPLE PS> Remove-DqChecks Maak een keuze uit een van onderstaande controles (kies 'Q' om af te breken): # Naam Entiteit Omschrijving ----- ------------------------- --------------- ---------------------------------------- [ 1] MY_CUSTOM_CHECK006 Eenheid Controleert of er aanwezigheid en geldigheid controles aanwezig zijn. [ 2] WOONGELUK_REL_GEG_GELDIG Relatie Controleert per voorbeeldrelatie of de adresgegevens correct zijn ingevuld. Controle gaat alleen over relaties die nog staan ingeschreven. [ 3] WOONGELUK_REL_GEG_GELDIG2 Relatie Controleert per voorbeeldrelatie of de adresgegevens correct zijn ingevuld. Controle gaat alleen over relaties die nog staan ingeschreven. Keuze (1-3 of q): .LINK Set-DqContext #> [CmdletBinding()] Param() Write-Verbose "Verkrijgen van lijst van controles die verwijderd kunnen worden..." $Deleted = 0 While ($True) { # We only support custom checks at this point. [Array]$CustomChecks = Get-DqChecks -CustomOnly If ($CustomChecks.Count -eq 0) { If ($Deleted -gt 0) { Write-Warning "Geen controles meer gevonden die verwijderd kunnen worden." } Else { Write-Warning "Geen controles gevonden die verwijderd kunnen worden." } Return; } $LengthMaxLength = ($CustomChecks | Select -ExpandProperty Name | Measure-Object -Maximum -Property Length).Maximum $EntityMaxLength = ($CustomChecks | Select -ExpandProperty Entity | Measure-Object -Maximum -Property Length).Maximum Write-Host "" Write-Host "Maak een keuze uit een van onderstaande controles (kies 'Q' om af te breken):" Write-Host " " Write-Host " #" "Naam".PadRight($LengthMaxLength) "Entiteit".PadRight($EntityMaxLength) "Omschrijving" Write-Host "-----" "-".PadRight($LengthMaxLength, "-") "-".PadRight($EntityMaxLength, "-") "-".PadRight(40, "-") For($x=1;$x -le $CustomChecks.Count; $x++) { $Check = $CustomChecks[$x-1] $Description = $Check.Documentation.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, " "), $Check.Name.PadRight($LengthMaxLength), $Check.Entity.PadRight($EntityMaxLength), $Description)); } Write-Host " " $Keuze = "" Do { Do { $Keuze = Read-Host "Keuze (1-$($CustomChecks.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 ($CustomChecks.Count - 1) -or [Int]$Keuze -eq 0) { $Keuze = "" } } } While ([String]::IsNullOrEmpty($Keuze)) Write-Host "" If ($Keuze.ToLowerInvariant().Equals("q")) { Write-Host "Handeling afgebroken." Return; } $Check = $CustomChecks[$Keuze-1]; $Result = Remove-DqCheck -CheckObject $Check If ($Result) { $Deleted += 1; } } } |