MSGraph.PS.ps1


## Read Module Manifest
$ModuleManifest = Import-PowershellDataFile (Join-Path $PSScriptRoot $MyInvocation.MyCommand.Name.Replace('.ps1','.psd1'))
[System.Collections.Generic.List[string]] $RequiredAssemblies = New-Object System.Collections.Generic.List[string]

## Select the correct assemblies for the PowerShell platform
if ($PSEdition -eq 'Desktop') {
    foreach ($Path in ($ModuleManifest.FileList -like "*\System.ValueTuple.*\portable-net40+sl4+win8+wp8\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
    foreach ($Path in ($ModuleManifest.FileList -like "*\Newtonsoft.Json.*\net45\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
    foreach ($Path in ($ModuleManifest.FileList -like "*\Microsoft.Graph.Core.1.*\net45\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
    foreach ($Path in ($ModuleManifest.FileList -like "*\Microsoft.Graph.1.*\net45\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
}
elseif ($PSEdition -eq 'Core') {
    foreach ($Path in ($ModuleManifest.FileList -like "*\System.ValueTuple.*\netstandard1.0\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
    foreach ($Path in ($ModuleManifest.FileList -like "*\System.Net.Http.*\netstandard1.3\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
    foreach ($Path in ($ModuleManifest.FileList -like "*\Newtonsoft.Json.*\netstandard1.0\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
    foreach ($Path in ($ModuleManifest.FileList -like "*\Microsoft.Graph.Core.*\netstandard1.1\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
    foreach ($Path in ($ModuleManifest.FileList -like "*\Microsoft.Graph.*\netstandard1.3\*.dll")) {
        $RequiredAssemblies.Add((Join-Path $PSScriptRoot $Path))
    }
}

## Load correct assemblies for the PowerShell platform
try {
    Add-Type -LiteralPath $RequiredAssemblies | Out-Null
}
catch { throw }