Public/Get-ADPUserType.ps1

function Get-ADPUserType {
    <#
    .SYNOPSIS
        Get a user's User Type from ADP

    .DESCRIPTION
        Get a user's User Type from ADP

    .PARAMETER ADPObject
        Object which holds the User Type

    .EXAMPLE
        Input Object: ADP Object
        Return String: <User Type>

    .NOTES
        This is used when passing the full adp worker object from ADP's APID

    .FUNCTIONALITY
        Powershell Language
    #>

    [CmdletBinding()]
    param (
        [Parameter( Mandatory = $true,
            Position = 0,
            ValueFromPipeline = $true
        )]
        $ADPObject
    )

    $localUserType = $null

    try {
        $localUserType = ($ADPObject.workAssignments | Where-Object { $_.primaryIndicator }).workerTypeCode.shortName
    }
    catch {}

    try {
        if (!$localUserType) {
            $localUserType = ($ADPObject.workAssignments | Where-Object { $_.primaryIndicator }).workerTypeCode.longName
        }
    }
    catch {}

    return ( $localUserType | Get-ValidADPReturn )
}