Public/Remove-P1WebApp.ps1

function Remove-P1WebApp {
    <#
    .Synopsis
    Uninstall a existing PlannerOne web application.

    .Description
    Uninstall a existing PlannerOne web application with the given parameters.

    .Parameter Tenant
    The tenant name of this web application.

    .Example
    # Uninstall a PlannerOne web application for the tenant Prod.
    Remove-P1WebApp -Tenant Prod
    #>

    [cmdletbinding()]
    param( 
        [Parameter(Mandatory=$true)]
        [string] $Tenant
    )
    Process
    {
        Write-Section "Removing web instance..." 
        $siteName = Get-SiteNameFromTenant $Tenant
        $poolName = Get-PoolNameFromTenant $Tenant
    
        $TenantInfo = Get-TenantInfo $Tenant
        if ($TenantInfo -ne $null) {
            $WebAppName = $TenantInfo.WebApplicationName
            Write-Verbose "Web application name read from tenant info is $WebAppName"
        }

        if (!$WebAppName) {
            Write-Verbose "No tenant info for web application name. Created one from convention"
            $WebAppName = Get-WebAppNameFromTenant $Tenant 
        }

        $sitePath = "$IISRootPath\$siteName"
        $webAppPath = "$sitePath\$WebAppName"

        # Remove WebApp
        Write-Verbose "Removing web app: $WebAppName"        
        Remove-WebApplication -Name $WebAppName -Site $siteName

        # Remove Site
        Write-Verbose "Removing site: $siteName"            
        Remove-WebSite -Name $siteName | Out-Null
        
        # Remove Pool
        Write-Verbose "Removing pool: $poolName"
        Stop-WebAppPool -Name $poolName

        Write-Output "Waiting 5 seconds for service to really stop."
        Start-Sleep -seconds 5        

        Remove-WebAppPool -Name $poolName
        
        # Remove WebApp folder
        Write-Verbose "Removing folder: $webAppPath"
        Remove-Symlink $webAppPath

        # Remove Site folder
        Write-Verbose "Removing folder: $sitePath"
        Remove-Item $sitePath -recurse -Force
        Write-OK "Web instance removed"
    }
}