Public/Xpand/Get-XpandPackages.ps1

function Get-XpandPackages {
    [CmdletBinding()]
    param (
        [parameter()]
        [ValidateSet("Release", "Lab")]
        $Source,
        [ValidateSet("All", "eXpand", "XAF")]
        $PackageType = "All"
    )
    
    begin {
    }
    
    process {
        if ($PackageType -eq "All") {
            $Filter = "*"
        }
        elseif ($PackageType -eq "eXpand") {
            $Filter = "eXpand*"
        }
        elseif ($PackageType -eq "XAF") {
            $Filter = "Xpand.XAF.Modules*"
        }
        try {
            $c=New-Object System.Net.WebClient
            ($c.DownloadString("https://xpandnugetstats.azurewebsites.net/api/totals/packages?packagesource=xpand")|ConvertFrom-Json|ForEach-Object{
                $_|ForEach-Object{
                    [PSCustomObject]@{
                        Id = $_.Id
                        Version=$_.Version
                        Source="Lab"
                    }
                }
            })+($c.DownloadString("https://xpandnugetstats.azurewebsites.net/api/totals/packages?packagesource=Nuget")|ConvertFrom-Json|ForEach-Object{
                $_|ForEach-Object{
                    [PSCustomObject]@{
                        Id = $_.Id
                        Version=$_.Version
                        Source="Release"
                    }
                }
            })|Where-Object{$_.id -like $Filter -and $_.Source -eq $Source}
            $c.Dispose()
        }
        catch {
            $nuget = Get-NugetPath
            if (($Source -eq "Release") -or !$Source) {
                $query = & $nuget List author:eXpandFramework -source (Get-PackageFeed -Nuget)
            $_
            }
            else {
                $query = & $nuget List -source (Get-PackageFeed -Xpand)
            }
            $filter.split(";") | ForEach-Object {
                $f = $_
                $query | Where-Object { $_ -like $f } | ConvertTo-PackageObject
            }
        }
        
    }
    
    end {
    }
}