Framework/Helpers/ControlHelper.ps1
# This class should contains method that would be required to filter/targer controls class ControlHelper: EventBase{ #Checks if the severities passed by user are valid and filter out invalid ones hidden static [PSObject] CheckValidSeverities([PSObject] $ParamSeverities) { $ValidSeverities = @(); $ValidSeverityValues = $null; $InvalidSeverities = @(); $ControlSettings = [ConfigurationManager]::LoadServerConfigFile("ControlSettings.json"); if([Helpers]::CheckMember($ControlSettings, 'ControlSeverity')) { $severityMapping = $ControlSettings.ControlSeverity #Discard the severity values passed in parameter that do not have mapping in Org settings. foreach($sev in $severityMapping.psobject.properties) { $ValidSeverities += $sev.value } $ValidSeverityValues = $ParamSeverities | Where-Object { $_ -in $ValidSeverities} $InvalidSeverities = $ParamSeverities | Where-Object { $_ -notin $ValidSeverities } } else { $ValidEnumSeverities = [Enum]::GetNames('ControlSeverity') $ValidSeverityValues = $ParamSeverities | Where-Object { $_ -in $ValidEnumSeverities} $InvalidSeverities = $ParamSeverities | Where-Object { $_ -notin $ValidEnumSeverities } } if($InvalidSeverities) { [EventBase]:: PublishGenericCustomMessage("WARNING: No matching severity values found for `"$($InvalidSeverities -join ', ')`"",[MessageType]::Warning) } return $ValidSeverityValues } } |