provider/updates/Get-IcingaUpdatesHotfix.psm1

function Get-IcingaUpdatesHotfix()
{
    [hashtable]$HotfixInfo      = @{ };
    [hashtable]$HotfixNameCache = @{ };

    # First fetch all of our hot fixes
    $HotFixes = Get-HotFix;

    foreach ($property in $HotFixes) {
        [hashtable]$HotfixData  = @{ };
        foreach ($hotfix in $property.Properties) {
            $HotfixData.Add($hotfix.Name, $hotfix.Value);
        }

        [string]$name = [string]::Format('{0} [{1}]', $HotfixData.HotFixID, $HotfixData.InstalledOn);

        if ($HotfixNameCache.ContainsKey($name) -eq $FALSE) {
            $HotfixNameCache.Add($name, 1);
        } else {
            $HotfixNameCache[$name] += 1;
            $name = [string]::Format('{0} ({1})', $name, $HotfixNameCache[$name]);
        }

        $HotfixInfo.Add($name, $HotfixData);
    }

    return $HotfixInfo;

}