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 |