custom/oldsdk/ValidatePagingParameters.ps1
function ValidatePagingParameters($PagingParameters, [UInt64] $TotalCount) { try { $pagingObj = @{ 'paging' = 0; 'pageSize' = $null; 'startPage' = $null; 'badParams' = $False } [UInt64] $PageSize = [Math]::Max($PagingParameters.First, 0) [UInt64] $StartPage = [Math]::Max($PagingParameters.Skip, 0) if ($PageSize -lt [Uint64]::MaxValue) { # MaxValue is system default if ($PageSize -gt 0 -and $PageSize -le $TotalCount) { if ($StartPage -lt ($TotalCount / $PageSize)) { $pagingObj['paging'] = 1 $pagingObj['pageSize'] = $PageSize $pagingObj['startPage'] = $StartPage } elseif ($StartPage -gt 0) { $pagingObj['badParams'] = $True Write-Warning -Message "$($MyInvocation.MyCommand): paging parameter -Skip [$StartPage] beyond end of record set" } } elseif ($PageSize -gt 0) { $pagingObj['badParams'] = $True Write-Warning -Message "$($MyInvocation.MyCommand): paging parameter -First [$PageSize] exceeds total record count" } } Write-Output $pagingObj } catch { throw $_ } } function HasProperty($Object, $PropertyName) { $PropertyName -in $Object.PSobject.Properties.Name } |