Build/Release-AppToFTP.ps1

function Release-AppToFTP{
    Param(
        [Parameter(Mandatory=$true)]
        [string]$AppName,    
        [Parameter(Mandatory=$true)]
        [string]$AppDirectory,
        [Parameter(Mandatory=$true)]
        [version]$PlatformVersion
    )
    $AppFolder = Get-FolderForPlatformVersion $PlatformVersion
    $TestAppFolder = Join-Path $AppFolder 'Tests' 
    $Apps = (Get-ChildItem $AppDirectory -Filter '*.app') -match $AppName
    foreach ($App in $Apps)
    {
        if (!$App.Name.Contains('Tests'))
        {
            Move-AppToArchive -FolderName $AppFolder -AppName $AppName
            Write-Host 'Uploading ' $App ' to ' $AppFolder
            Put-ItemFtp -LocalPath $App.FullName -FtpPath $AppFolder
        } else {
            Move-AppToArchive -FolderName $TestAppFolder -AppName $AppName
            Write-Host 'Uploading ' $App ' to ' $TestAppFolder
            Put-ItemFtp -LocalPath $App.FullName -FtpPath $TestAppFolder
        }
    }   
}

function Move-AppToArchive{
    Param(
        [Parameter(Mandatory=$true)]
        [string]$FolderName,
        [Parameter(Mandatory=$true)]
        [string]$AppName
    )
    $AppFiles = (Get-ChildItemFTP $FolderName) -match $AppName
    if ($AppFiles -ne $false) {
        foreach($AppFile in $AppFiles){
            Write-Host 'Moving '$AppFile' to Archive'
            Rename-ItemFTP -OldPath $FolderName -Name $AppFile -NewPath 'Archive'       
        }
    }
}

function Get-FolderForPlatformVersion{
    Param(
        [Parameter(Mandatory=$true)]
        [version]$PlatformVersion
    )

    'Business Central ' + $PlatformVersion.Major;
}

Export-ModuleMember -Function Release-AppToFTP