public/Confirm-FootballFixtureArtifact.ps1
function Confirm-FootballFixtureArtifact { <# .EXAMPLE Confirm-FootballFixtureArtifact -Type preview -Path C:\sportsmonk .EXAMPLE Confirm-FootballFixtureArtifact -Type review -Path C:\sportsmonk #> [CmdletBinding()] param( [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Path, [Parameter(Mandatory=$true)] [ValidateSet('preview-image','preview-template','review-image','review-template')] [string]$Type ) process{ $ErrorActionPreference = 'Stop' try { if ($Type -like '*-image') { $CompetitionFolders = Get-ChildItem -Path "$Path\fixture-artifact\working-set" $FolderFilter = 'working-set' } # if if ($Type -like '*template') { $CompetitionFolders = Get-ChildItem -Path "$Path\fixture-artifact\multi-media" $FolderFilter = 'multi-media' } # if foreach ($CompetitionFolder in $CompetitionFolders) { # \sportsmonk\fixture-artifact\working-set\usa-mls $Competition = $($CompetitionFolder.FullName).Split("$FolderFilter\")[1] $FixtureFolders = Get-ChildItem -Path $($CompetitionFolder.FullName) -ErrorAction Stop $PSObject = [PSCustomObject]@{ Competition = $Competition Type = $Type } foreach ($FixtureFolder in $FixtureFolders) { # \sportsmonk\fixture-artifact\working-set\usa-mls\2025-02-23 $Date = $($FixtureFolder.FullName).Split("\$FolderFilter\$Competition\")[1] if ($Type -like 'review*') { $FixtureFiles = Get-ChildItem -Path $($FixtureFolder.FullName) -File -Recurse -ErrorAction Stop ` | Where-Object {$_.FullName -like '*rev*' -and $_.FullName -notlike '*prev*'} } if ($Type -like 'preview*') { $FixtureFiles = Get-ChildItem -Path $($FixtureFolder.FullName) -File -Recurse -ErrorAction Stop ` | Where-Object {$_.FullName -like "*prev*"} } # if if ($($FixtureFiles.Count) -ge 1) { $PSObject | Add-Member -MemberType NoteProperty -Name FixtureFilesCount -Value $($FixtureFiles.Count) $PSObject | Add-Member -MemberType NoteProperty -Name Date -Value $Date $PSObject $PSObject.PSObject.Properties.Remove('Date') $PSObject.PSObject.Properties.Remove('FixtureFilesCount') } # if } # foreach } # foreach } catch { "$($MyInvocation.MyCommand.Name): $_.Exception.Message" } # trycatch } # process } # function |