Modules/AzureDevOpsDsc.Common/Api/Functions/Private/Helper/Compare-HashtableProperties.ps1
|
Function Compare-HashtableProperties { [CmdletBinding()] Param ( # Mandatory parameter: Reference hashtable for comparison [Parameter(Mandatory = $true)] [hashtable]$ReferenceHashTable, # Mandatory parameter: Hashtable to compare against the reference [Parameter(Mandatory = $true)] [hashtable]$DifferenceHashTable, # Mandatory parameter: Array of keys to compare in both hashtables [Parameter()] [string[]]$Keys ) foreach ($key in $Keys) { if ([String]::IsNullOrEmpty($key)) { continue } try { # A missing key or a differing value both count as a difference. if (-not $ReferenceHashTable.ContainsKey($key) -or -not $DifferenceHashTable.ContainsKey($key) -or $ReferenceHashTable[$key] -ne $DifferenceHashTable[$key]) { return $true } } catch { return $true } } return $false } |