Additions/Get-AdditionBasePath.ps1

function Get-AdditionBasePath
{
    Param(
        [Parameter(Mandatory=$true)]
        [string]$AdditionPath
    )
    
    #attempt to read the extension config file first
    $ExtensionConfigPath = Join-Path (Join-Path $AdditionPath 'Extension') 'extension.xml'
    $ExtensionLocalPath = Join-Path (Create-TempDirectory) 'extension.xml'
    Get-ObjectsFromTFSBranch -BranchPath $ExtensionConfigPath -DestinationPath $ExtensionLocalPath -Type File

    if (Test-Path $ExtensionLocalPath)
    {
        [xml]$ExtensionConfig = Get-Content $ExtensionLocalPath
        if ($ExtensionConfig.SelectNodes('extension/base').Count -eq 1)
        {
            Remove-Item (Split-Path $ExtensionLocalPath -Parent) -Recurse -Force

            $ExtensionConfig.SelectSingleNode('extension/base').InnerText
            return
        }
    }


    [int]$VersionNo = 0

    if ([Int]::TryParse($AdditionPath.Substring($AdditionPath.Length - 4),[ref]$VersionNo))
    {
        ('$/NAV - Base Versions/{0}/RTM' -f $VersionNo)
    }
    elseif ($AdditionPath.Substring($AdditionPath.Length - 6) -eq '2013R2')
    {
        '$/NAV - Base Versions/2013R2/RTM'
    }
    elseif ($AdditionPath.Substring($AdditionPath.LastIndexOf('/') + 1) -eq 'DEV_ShopFloorDataCapture')
    {
        '$/NAV - Base Versions/2016/RTM'
    }
    elseif ($AdditionPath.Contains('Mobile Apps 6 NAV SOURCE'))
    {
        switch ($AdditionPath.Substring($AdditionPath.Length - 4))
        {
            2015{'$/NAV - Base Versions/2015/CU6 40459'; break}
            2016{'$/NAV - Base Versions/2016/CU5 45243'; break}
            2017{'$/NAV - Base Versions/2017/CU2 15052'; break}
        }            
    }
    elseif ($AdditionPath.Contains('Mobile Apps 6 NAV FOODWARE SOURCE')) 
    {
        if ($AdditionPath.Substring($AdditionPath.Length - 11) -eq 'GBNAV10_CU8')
        {
            '$/Foodware/FW2017/FW2017.SI6.01GBCU8'
        }
        elseif (($AdditionPath.Substring($AdditionPath.Length - 4) -eq 'Test') -or ($AdditionPath.Substring($AdditionPath.Length - 3) -eq 'Dev'))
        {
            '$/Foodware/FW2016/FW2016.GB'
        }
    }
    else
    {
        '$/NAV - Base Versions/2015/RTM'
    }
}    

Export-ModuleMember -Function Get-AdditionBasePath