Public/Migration/MailboxMove/Base/Get-MailboxMoveStatistics.ps1

Function Get-MailboxMoveStatistics {
    <#
    .SYNOPSIS
    Get Move Request Statistics and refresh by clicking OK
 
    .DESCRIPTION
    Get Move Request Statistics and refresh by clicking OK
    Uses Out-GridView to display and allows user to click OK to refresh
 
    .PARAMETER IncludeCompleted
    To include completed move requests in the report
    Currently, completed move requests are always displayed with -ShowAllStats (To offer the choice, I will correct this on the next release)
 
    .EXAMPLE
    Get-MailboxMoveStatistics
 
    .EXAMPLE
    Get-MailboxMoveStatistics -IncludeCompleted
 
    .EXAMPLE
    Get-MailboxMoveStatistics -UploadToSharePointURL "https://contoso.sharepoint.com/sites/Migration" -ShowAllStats
 
    .NOTES
    Add a schedule task if you like:
 
        $Splat = @{
            TaskName = "Hourly Migration Stats Task"
            User = "user@domain.root"
            RepeatInMinutes = 60
            Executable = "PowerShell.exe"
            Argument = '-ExecutionPolicy RemoteSigned -Command "Connect-Cloud Contoso -EXO ; Get-MailboxMoveStatistics -UploadToSharePointURL "https://contoso.sharepoint.com/sites/Migration" -ShowAllStats"'
        }
 
        Add-TaskByMinute @Splat
 
    #>


    [CmdletBinding(DefaultParameterSetName = 'PlaceHolder')]
    [Alias('GMMS')]
    param
    (
        [Parameter()]
        [switch]
        $IncludeCompleted,

        [Parameter(ParameterSetName = 'RandR')]
        [Alias('PassThruData')]
        [switch]
        $RemoveAndRestart,

        [Parameter(ParameterSetName = 'RandR')]
        [switch]
        $Remove,

        [Parameter(ParameterSetName = 'SharePoint')]
        [string]
        $UploadToSharePointURL,

        [Parameter(ParameterSetName = 'SharePoint')]
        [switch]
        $ShowAllStats
    )
    if ($UploadToSharePointURL) {
        Invoke-GetMailboxMoveStatisticsHelper -IncludeCompleted:$true -UploadToSharePointURL $UploadToSharePointURL -ShowAllStats:$ShowAllStats
    }
    elseif ($RemoveAndRestart -or $Remove) {
        Invoke-GetMailboxMoveStatisticsHelper -IncludeCompleted:$IncludeCompleted -RemoveAndRestart:$RemoveAndRestart -Remove:$Remove
    }
    else {
        Invoke-GetMailboxMoveStatisticsHelper -IncludeCompleted:$IncludeCompleted
    }
}