Private/Options/_OnOptionsSourceInitialized.ps1

function _OnOptionsSourceInitialized {
    $Options_ModuleVersionLabel.Content = "Module Version: $($Module.Version)"
    $Script:SettingsSaved = $false

    #region Entra ID
    $Options_EntraIDCheckBox.IsChecked = $STTSettings.FeatureSettings.Entra
    $Options_EntraTenantTextBox.Text = $STTSettings.EntraSettings.TenantURL
    $Options_ConnectServerTextBox = $STTSettings.EntraSettings.EntraConnectServer
    if ($Options_EntraIDCheckBox.IsChecked) {
        $Options_EntraTenantTextBox.Visibility = 'Visible'
        $Options_ConnectServerTextBox.Visibility = 'Visible'
        $Options_EntraTenantURLTextBlock.Visibility = 'Visible'
        $Options_EntraConnectServerTextBlock.Visibility = 'Visible'
    }
    else {
        $Options_EntraTenantTextBox.Visibility = 'Collapsed'
        $Options_ConnectServerTextBox.Visibility = 'Collapsed'
        $Options_EntraTenantURLTextBlock.Visibility = 'Collapsed'
        $Options_EntraConnectServerTextBlock.Visibility = 'Collapsed'
    }
    #endregion
    #region Modules
    $ModulesToSearch = @('MSOnline', 'ExchangeOnlineManagement')
    $RequiredModules = Get-InstalledModule -Name $ModulesToSearch -ErrorAction SilentlyContinue
    $Object = @()
    if ($RequiredModules) {
        $Object += [PSCustomObject]$RequiredModules | Select-Object Name, Version, Repository, Description
    }
    else {
        $Object += [PSCustomObject]@{
            Error = 'Error getting modules. Verify they are installed.'
        }
    }
    $Options_InstalledModulesDataGrid.ItemsSource = $Object

    #endregion

    #region DC Settings
    $DCs = Get-ADDomainController @GetObjectSplat -Filter *
    foreach ($DC in $DCs) {
        $Options_DCComboBox.Items.Add($DC.HostName)
    }
    $Options_DCComboBox.Text = $STTSettings.DCSettings.DomainController

    $Options_CredentialsAlternateCheckBox.IsChecked = $STTSettings.DCSettings.UseAlternateCredentials
    if ($Options_CredentialsAlternateCheckBox.IsChecked) {
        $Options_UsernameTextBlock.Visibility = 'Visible'
        $Options_CredentialsUsernameTextBox.Visibility = 'Visible'
        $Options_PasswordTextBlock.Visibility = 'Visible'
        $Options_CredentialsPasswordPasswordBox.Visibility = 'Visible'
    }
    else {
        $Options_UsernameTextBlock.Visibility = 'Collapsed'
        $Options_CredentialsUsernameTextBox.Visibility = 'Collapsed'
        $Options_PasswordTextBlock.Visibility = 'Collapsed'
        $Options_CredentialsPasswordPasswordBox.Visibility = 'Collapsed'
    }
    if ($ADCredential) {
        $Options_CredentialsUsernameTextBox.Text = $ADCredential.Username
        $Options_CredentialsPasswordPasswordBox.Password = "You can't read this."
    }
    #endregion

    #region SCCM
    $Options_SCCMIntegrationCheckBox.IsChecked = $STTSettings.FeatureSettings.SCCM
    $Options_SCCMServerTextBox.Text = $STTSettings.SCCMSettings.SCCMServerHostname
    if ($Options_SCCMIntegrationCheckBox.IsChecked) {
        $Options_SCCMServerTextBox.Visibility = 'Visible'
        $Options_SCCMCollectionComboBox.Visibility = 'Visible'
        $Options_SCCMServerTextBlock.Visibility = 'Visible'
        $Options_DefaultCollectionTextBlock.Visibility = 'Visible'

        try {
            $SCCMCollections = _GetSCCMInformationQuerySTT -Route wmi -Connector 'SMS_Collection' | Sort-Object
        }
        catch {
            $Options_SavingTextBlock.Text = 'Unable to get collections from SCCM. Verify that you have permissions to read SCCM.'
        }
        if ($SCCMCollections) {
            foreach ($Collection in $($SCCMCollections | Sort-Object Name)) {
                $Options_SCCMCollectionComboBox.Items.Add($Collection.Name)
            }
            $Options_SCCMCollectionComboBox.SelectedItem = $STTSettings.SCCMSettings.SCCMDefaultCollection
        }
        else {
            $Options_SCCMCollectionComboBox.Text = 'Unable to load.'
        }
    }
    else {
        $Options_SCCMServerTextBox.Visibility = 'Collapsed'
        $Options_SCCMCollectionComboBox.Visibility = 'Collapsed'
        $Options_SCCMServerTextBlock.Visibility = 'Collapsed'
        $Options_DefaultCollectionTextBlock.Visibility = 'Collapsed'
    }
    #endregion

    #region Exchange on-premise
    $Options_ExchangeIntegrationCheckBox.IsChecked = $STTSettings.FeatureSettings.Exchange
    #endregion

    #region Theme
    switch ($STTSettings.Theme) {
        'Dark' {
            $Options_DarkThemeRadioButton.IsChecked = $true
        }
        'Light' {
            $Options_LightThemeRadioButton.IsChecked = $true
        }
        'Violet' {
            $Options_VioletThemeRadioButton.IsChecked = $true
        }
        Default {
        }
    }
    #endregion

    #region WhatsUpGold
    $Options_WUGIntegrationCheckBox.IsChecked = $STTSettings.FeatureSettings.WhatsUpGold
    if ($Options_WUGIntegrationCheckBox.IsChecked) {
        $Options_WUGServerTextBlock.Visibility = 'Visible'
        $Options_WUGServerTextBox.Visibility = 'Visible'
        $Options_WUGUsernameTextBlock.Visibility = 'Visible'
        $Options_WUGCredentialsUsernameTextBox.Visibility = 'Visible'
        $Options_WUGPasswordTextBlock.Visibility = 'Visible'
        $Options_WUGCredentialsPasswordPasswordBox.Visibility = 'Visible'
    }
    else {
        $Options_WUGServerTextBlock.Visibility = 'Collapsed'
        $Options_WUGServerTextBox.Visibility = 'Collapsed'
        $Options_WUGUsernameTextBlock.Visibility = 'Collapsed'
        $Options_WUGCredentialsUsernameTextBox.Visibility = 'Collapsed'
        $Options_WUGPasswordTextBlock.Visibility = 'Collapsed'
        $Options_WUGCredentialsPasswordPasswordBox.Visibility = 'Collapsed'
    }

    if ($WUGCredential) {
        $Options_WUGCredentialsUsernameTextBox.Text = $WUGCredential.Username
        $Options_WUGCredentialsPasswordPasswordBox.Password = "You can't read this."
    }
    #endregion

    #region Stored Objects
    $Options_ObjectCacheTextBox.Text = $STTSettings.ObjectsSettings.ObjectStorageFolder
    #endregion
}