public/Confirm-ProcessedFootballFixture.ps1
function Confirm-ProcessedFootballFixture { [CmdletBinding()] param( [Parameter(Mandatory=$false)] [ValidateSet('europe','europe-uk','south-america','north-america','asia')] [string]$Continent, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [int]$DateMonth, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [int]$DateYear, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [Object]$FixtureList, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Path, [Parameter(Mandatory=$true)] [ValidateSet('results','predictions')] [string]$Type ) process{ $ErrorActionPreference = 'Stop' try { if ($DateMonth -lt 10) { $DateMonthToUse = "0$DateMonth" } else { $DateMonthToUse = $DateMonth } # if if ($Type -eq 'predictions') { $UniqueFixtures =@() $ProcessedFixtures =@() $ProcessedFilesPath = "$Path\fixture-artifact\processed-fixtures\$DateYear\$DateMonthToUse\$Type" $ProcessedFilesPathExists = Test-Path -Path $ProcessedFilesPath if ($ProcessedFilesPathExists) { $ProcessedFiles = Get-ChildItem -Path $ProcessedFilesPath -Recurse -File } # if if ($($ProcessedFiles.Count) -gt 1) { foreach ($FixtureToProcess in $FixtureList) { foreach ($ProcessedFile in $ProcessedFiles) { # Read and convert the JSON content from the file $ProcessedFixtureList = Get-Content -Path $($ProcessedFile.FullName) | ConvertFrom-Json # Check if the fixture id exists in the processed fixture list if ($($ProcessedFixtureList.id) -contains $($FixtureToProcess.id)) { Write-Warning "Fixture Processed: $($FixtureToProcess.id) $($FixtureToProcess.Name)." $ProcessedFixtures += $FixtureToProcess } # if } # foreach } # foreach } else { $UniqueFixtures = $FixtureList | Select-Object -Property * -Unique return $UniqueFixtures } # if foreach ($FixtureToProcess in $FixtureList) { if ($($ProcessedFixtures.Id) -notcontains $($FixtureToProcess.id)) { $FixtureToProcess } #if } # if } # if if ($Type -eq 'results') { $ProcessedFixtures =@() $Competitions = $Competitions = Select-FootballCompetition -Continent $Continent $Competitions.GetEnumerator() | ForEach-Object -Process { $ResultFiles = Get-ChildItem -Path "$Path\sportsmonk-results\$($_.key)" -Recurse -File foreach ($FixtureToProcess in $FixtureList) { foreach ($ResultFile in $ResultFiles) { # C:\sportsmonk\sportsmonk-results\eng-premier\2025-02-23\eng-premier-2025-02-23.csv # 2025-02-23\eng-premier-2025-02-23.csv #$Path = 'C:\sportsmonk\sportsmonk-results\eng-premier\2025-02-23\eng-premier-2025-02-23.csv' $Split1 = $($ResultFile.FullName).Split("\$($_.key)\")[-1] #$Split1 = $Path.Split("\$($_.key)\")[-1] # 2025-02-23\eng-premier-2025-02-23.csv # 2025-02-23 $Date = $Split1.Split("\$($_.key)")[0] $NoResultsExist = Confirm-FootballFixtureResult -Competition $($_.key) -Date $Date -Path $Path if ($NoResultsExist) { $ProcessedFixtures += $FixtureToProcess } # if } # foreach } # foreach } # foreach-object $UniqueFixtures = $ProcessedFixtures | Select-Object -Property * -Unique return $UniqueFixtures } # if } catch { "$($MyInvocation.MyCommand.Name): $_.Exception.Message" } # trycatch } # process } # function |