public/Get-FootballDataFixtureHistory.ps1

function Get-FootballDataFixtureHistory {

    [CmdletBinding()]
    param(

        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$Competition,

        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$Path


    )
    process {

        $ErrorActionPreference = 'Stop'

        try {

            $Uri = Get-FootballDataFileUri -Competition $Competition
            $FileName = $Uri.Split('/')[-1]
            $HistoricalFixtures = Import-Csv -Path "$Path\football-data-source\$FileName"
            $LeagueTeams = Import-Csv -Path "$Path\sportsmonk-predictions\$Competition\$Competition-standing-order.csv"
            $AlternateNames = Get-FootballDataTeamAlternateName -Competition $Competition

            foreach ($HistoricalFixture in $HistoricalFixtures) {

                $LeagueHomeTeamExists = $false
                $LeagueAwayTeamExists = $false
                $CombinedFixtureName = ''

                #Write-Host "Processing $($HistoricalFixture.HomeTeam) vs $($HistoricalFixture.AwayTeam)" -ForegroundColor White
                #$HistoricalFixture | Select-Object -Property Date,Time,HomeTeam,AwayTeam,FTHG,FTAG,FTR | Format-Table

                if ($($LeagueTeams.Team) -contains $($HistoricalFixture.HomeTeam)) {

                    $LeagueHomeTeamExists = $true

                }

                if ($($LeagueTeams.Team) -contains $($HistoricalFixture.AwayTeam)) {

                    $LeagueAwayTeamExists = $true

                }

                if (!$LeagueHomeTeamExists -and $LeagueAwayTeamExists) {

                    $AlternateHomeNameToUse = $AlternateNames[$($HistoricalFixture.HomeTeam)]
                    Write-Warning -Message "alternate home team name to use for $($HistoricalFixture.HomeTeam) is $AlternateHomeNameToUse"
                    $CombinedFixtureName = "$AlternateHomeNameToUse vs $($HistoricalFixture.AwayTeam)"

                }
                elseif ($LeagueHomeTeamExists -and !$LeagueAwayTeamExists) {

                    $AlternateAwayNameToUse = $AlternateNames[$($HistoricalFixture.AwayTeam)]
                    Write-Warning -Message "alternate away team name to use for $($HistoricalFixture.AwayTeam) is $AlternateAwayNameToUse"
                    $CombinedFixtureName = "$($HistoricalFixture.HomeTeam) vs $AlternateAwayNameToUse"

                }
                elseif (!$LeagueHomeTeamExists -and !$LeagueAwayTeamExists) {

                    $AlternateHomeNameToUse = $AlternateNames[$($HistoricalFixture.HomeTeam)]
                    $AlternateAwayNameToUse = $AlternateNames[$($HistoricalFixture.AwayTeam)]
                    Write-Warning -Message "alternate away team name to use for $($HistoricalFixture.AwayTeam) is $AlternateAwayNameToUse"
                    $CombinedFixtureName = "$AlternateHomeNameToUse vs $AlternateAwayNameToUse"

                }
                else {

                    $CombinedFixtureName = "$($HistoricalFixture.HomeTeam) vs $($HistoricalFixture.AwayTeam)"

                }

                #Write-Host "Combined fixture is $CombinedFixtureName" -ForegroundColor Yellow
                # Date,Time,HomeTeam,AwayTeam,FTHG,FTAG,FTR

                $Object = [PSCustomObject]@{
                    ReverseFixtureName = $CombinedFixtureName
                    HomeTeam = $($HistoricalFixture.HomeTeam)
                    AwayTeam = $($HistoricalFixture.AwayTeam)
                    Date = $($HistoricalFixture.Date)
                    Time = $($HistoricalFixture.Time)
                    HomeGoals = $($HistoricalFixture.FTHG)
                    AwayGoals = $($HistoricalFixture.FTAG)
                    Result = $($HistoricalFixture.FTR)
                    HomeYellowCards = $($HistoricalFixture.HY) # Home Team Yellow Cards
                    AwayYellowCards = $($HistoricalFixture.AY) # Away Team Yellow Cards
                    HomeRedCards = $($HistoricalFixture.HR) # Home Team Red Cards
                    AwayRedCards = $($HistoricalFixture.AR) # Away Team Red Cards
                    HTimeHomeGoals = $($HistoricalFixture.HTHG) # Half Time Home Team Goals
                    HTimeAwayGoals = $($HistoricalFixture.HTAG) # Half Time Away Team Goals
                    HTimeResult = $($HistoricalFixture.HTR) # Half Time Result (H=Home Win, D=Draw, A=Away Win)
                }

                $Object

            } # foreach

        }
        catch {

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

        } # try catch

    } # process

} # function