public/Select-FootballCompetitionFixtureList.ps1

function Select-FootballCompetitionFixtureList {
    <#
        .EXAMPLE
            Select-FootballCompetitionFixtureList -Continent australia -FixtureList $Fixtures
     
    #>

    [CmdletBinding()]
    param(

        [Parameter(Mandatory=$true)]
        [ValidateSet('australia','europe','europe-uk','europe-uk-cup','europe-uk-fl','europe-uk-wsl','south-america','north-america','asia')]
        [string]$Continent,

        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [Object]$FixtureList

    )
    process{

        try {

            $FixturesToUse =@()
            $Competitions = Select-FootballCompetition -Continent $Continent

            If ($($Competitions.Count) -eq 1) {

                $Identifier = Get-LeagueIdentifier -Competition $($Competitions.Key)

                foreach ($FixitureToPlay in $FixtureList) {

                    $FixturesToUse += $FixitureToPlay | Where-Object {$_.league_id -eq $Identifier}

                } # foreach
            }
            else {

                $Competitions.GetEnumerator() | ForEach-Object -Process {

                    $Identifier = Get-LeagueIdentifier -Competition $_.key

                    foreach ($FixitureToPlay in $FixtureList) {

                        $FixturesToUse += $FixitureToPlay | Where-Object {$_.league_id -eq $Identifier}

                    } # foreach

                } # foreach-object

            } # if

            return $FixturesToUse

        }
        catch {

            "$($MyInvocation.MyCommand.Name): $_.Exception.Message"

        } # try catch

    } # process

} # function