Public/Get-AllegisNameScore.ps1

function Get-AllegisNameScore ($first1, $middle1, $last1, $first2, $middle2, $last2){

    #if ((Get-FuzzyMatchScore -Search "$first1 $middle1 $last1" -String "$first2 $middle2 $last2") -lt 100){}
    
    $results=@([PSCustomObject]@{
        method   = 'first+middle+last'
        weight   = 1
        score    = .01 * (get-pasmAverage -string1 "$first1 $middle1 $last1".Replace(' ',' ') -string2 "$first2 $middle2 $last2".Replace(' ',' ')) 
        detailed = (get-pasmAverage -string1 "$first1 $middle1 $last1".Replace(' ',' ') -string2 "$first2 $middle2 $last2".Replace(' ',' ') -detailed $true) 
        })
    if ($results.score -lt .33){return $results}
    $results+=[PSCustomObject]@{
        method   = 'first+last'
        weight   = .97
        score    = .01 * (get-pasmAverage -string1 "$first1 $last1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' '))
        detailed = (get-pasmAverage -string1 "$first1 $last1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' ') -detailed $true)
        }
    if ($first1 -ge 2){
        $results+=[PSCustomObject]@{
            method   = 'first1 only'
            weight   = .90
            score    = .01 * (get-pasmAverage -string1 "$first1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' '))
            detailed = (get-pasmAverage -string1 "$first1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' ') -detailed $true)
            }
        }
    if ($first2 -ge 2){
        $results+=[PSCustomObject]@{
            method   = 'first2 only'
            weight   = .90
            score    = .01 * (get-pasmAverage -string1 "$first2".Replace(' ',' ') -string2 "$first1 $last1".Replace(' ',' '))
            detailed = (get-pasmAverage -string1 "$first2".Replace(' ',' ') -string2 "$first1 $last1".Replace(' ',' ') -detailed $true)
            }
        }
    if ($middle1 -ge 2){
        $results+=[PSCustomObject]@{
            method   = 'middle1 as first'
            weight   = .90
            score    = .01 * (get-pasmAverage -string1 "$middle1 $last1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' '))
            detailed = (get-pasmAverage -string1 "$middle1 $last1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' ') -detailed $true)
            }
        }
    if ($middle2 -ge 2){
        $results+=[PSCustomObject]@{
            method   = 'middle2 as first'
            weight   = .90
            score    = .01 * (get-pasmAverage -string1 "$middle2 $last2".Replace(' ',' ') -string2 "$first1 $last1".Replace(' ',' '))
            detailed = (get-pasmAverage -string1 "$middle2 $last2".Replace(' ',' ') -string2 "$first1 $last1".Replace(' ',' ') -detailed $true)
            }
        }
    $results+=[PSCustomObject]@{
            method   = 'last+first'
            weight   = .90
            score    = .01 * (get-pasmAverage -string1 "$last1 $first1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' '))
            detailed = (get-pasmAverage -string1 "$last1 $first1".Replace(' ',' ') -string2 "$first2 $last2".Replace(' ',' ') -detailed $true)
            }
    foreach ($item in $results){
        $item | Add-Member -NotePropertyName weightedscore -NotePropertyValue ($item.score * $item.weight) -force
    }
    return ($results | Sort-Object weightedscore -Descending)[0] 
}