start-DomainOperation.ps1

<#
    .SYNOPSIS
 
    This function creates the msGraph connection to support additional functions.
 
    .DESCRIPTION
 
    This function creates the msGraph connection to support additional functions.
 
    .PARAMETER msGraphEnvironmentName
 
    The graph environment that the work will be performed in.
 
    .OUTPUTS
 
    None
 
    .EXAMPLE
 
    validate-msGraphConnection -msGraphScopesRequired $msGraphScopesRequired
 
    #>

    Function start-DomainOperation
{
    [cmdletbinding()]

    Param
    (
        [Parameter(Mandatory = $true)]
        [string]$domainName,
        [Parameter(Mandatory = $true)]
        [string]$domainOperation,
        [Parameter(Mandatory = $true)]
        [string]$msGraphEnvironmentName
    )

    #Define local variables.

    $domainAdd = "Add"
    $domainRemove = "Remove"
    $domainConfirm = "Confirm"
    $domainForceDomainTakeOver = "ForceDomainTakeOver"
    $localDomainName = ""

    out-logfile -string "Entering Start-DomainOperation"

    if ($domainName -eq $global:testString)
    {
        out-logfile -string "Domain was not specified at runtime."
        
        write-host ""
        write-host "***************"
        $localDomainName = Read-Host "Enter Domain Name"
        write-host "***************"
        write-host ""
    }
    else 
    {
        out-logfile -string "Domain specified at runtime."
        $localDomainName = $domainName
    }

    out-logfile -string ("Domain specified: "+$localDomainName)

    if ($domainOperation -eq $global:testString)
    {
        out-logfile -string "A domain operation was not provided.."

        write-host ""
        write-host "*********************************************"
        write-host "Select the domain operation to perform:"
        write-host "1: Add"
        write-host "2: Remove"
        write-host "3: Confirm"
        write-host "4: ForceDomainTakeOver"

        $selection = read-host "Please make an operation selection: "

        out-logfile -string ("Operation Selected = "+$selection)

        switch($selection)
        {
            '1' {
                out-logfile -string "Add"
                $domainOperation = $domainAdd
            } '2' {
                out-logfile -string "Remove"
                $domainOperation = $domainRemove
            } '3' {
                out-logfile -string "Confirm"
                $domainOperation = $domainConfirm
            } '4' {
                out-logfile -string "ForceDomainTakeOver"
                $domainOperation = $domainForceDomainTakeOver
            } default {
                out-logfile -string "Invalid operation selection made." -isError:$TRUE
            }
        }
    }
    else 
    {
        out-logfile -string "A valid domain operation was specified at runtime."
    }

    out-logfile -string ("Operation: "+$domainOperation)

    switch ($domainOperation)
    {
        $domainAdd {
            try {
                new-MGDomain -domainName $domainName -errorAction Stop
                out-logfile -string "Domain added successfully."
            }
            catch {
                out-logfile -string "Unable to add the specified domain."
                out-logfile -string $_ -isError:$TRUE
            }
        } $domainRemove {

        } $domainConfirm {

        } $domainForceDomainTakeOver {

        }
    }

    out-logfile -string "Exiting Start-DomainOperation"
}