Public/Start-P1TenantManager.ps1
function Start-P1TenantManager { [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') [xml]$xaml = Get-Content "$PSScriptRoot\MainWindow.xaml" $reader=(New-Object System.Xml.XmlNodeReader $xaml) try { $Form=[Windows.Markup.XamlReader]::Load( $reader ) } catch { Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed." } # Store Form Objects In PowerShell $xaml.SelectNodes("//*[@Name]") | %{Set-Variable -Name ($_.Name) -Value $Form.FindName($_.Name)} # Close event $btnExit.Add_Click({$form.Close()}) # Test click event $btnTest.Add_Click({ $features = Test-P1Prerequisites $prereqDataGrid.ItemsSource = @($features) }) # Add missing click event $btnAddMissing.Add_Click({ $prereqDataGrid.ItemsSource = $null $features = Test-P1Prerequisites -Install $prereqDataGrid.ItemsSource = @($features) }) # Test click event $btnLoad.Add_Click({ $packages = Get-P1Packages $itemsSource = @() foreach ($package in $packages) { $installedPackage = Get-Package $package.Name if ($installedPackage -ne $null) { $installedVersion = $installedPackage.Version } else { $installedVersion = $null } [PSCustomObject]$item = @{ Name = $package.Name; Version = $package.Version; InstalledVersion = $installedVersion; Install = $false; } $itemsSource += $item } $packagesDataGrid.ItemsSource = $itemsSource }) # Install click event $btnInstall.Add_Click({ $itemsSource = $packagesDataGrid.ItemsSource foreach ($package in ($itemsSource | Where-Object Install -eq $true)) { Install-P1Package $package.Name } }) $Form.ShowDialog() | out-null } |