Public/Get-AHStore.ps1

function Get-AHStore
{
    [CmdletBinding()]
    param
    (       
        [int[]]$ID,
    
        [ValidateNotNullOrEmpty()]
        [string]$Street = '*',

        [ValidateNotNullOrEmpty()]
        [string]$City = '*',

        [ValidateNotNullOrEmpty()]
        [string]$ZipCode = '*',

        [ValidateSet('AH', 'DNTG', 'XL')]
        [string[]]$Format = ('AH', 'DNTG', 'XL'),

        [switch]$Force 
    )
    
    Get-CachedStore -Force:$Force |
        Where-Object { (-not $ID) -or ($ID -contains $_.StoreNumber) } | 
        Where-Object { $_.Address.Street -like $Street } | 
        Where-Object { $_.Address.City -like $City } | 
        Where-Object { $_.Address.Zip -like $ZipCode } | 
        Where-Object { $Format -contains $_.Format } |
        ForEach-Object {
        [PSCustomObject]@{
            ID           = $_.StoreNumber    
            Street       = "$($_.Address.Street) $($_.Address.HouseNr)"
            ZipCode      = $_.Address.Zip
            City         = $_.Address.City
            Format       = $_.Format
            Latitude     = $_.Coordinates.Latitude
            Longitude    = $_.Coordinates.Longitude
            Services     = $_.Services
            OpeningHours = $_._Embedded.OpeningHours | Where-Object { 'CURRENT', 'FUTURE' -contains $_.state } | ForEach-Object { $Current = $_; $Current.Blocks | ForEach-Object { [pscustomobject]@{ Date = $Current.Date; From = $_.From.SubString(0, 5); To = $_.To.SubString(0, 5) } } } 
            PSTypeName   = 'UncommonSense.AH.Store'
        }
    }
}