Functions/Private/Get-ModulePreferences.ps1
function Get-ModulePreferences { <# .SYNOPSIS Returns the current data collection settings for this module. .DESCRIPTION Returns the current data collection settings for this module. Data collection can be enabled or disabled with the Enable-AzUpgradeDataCollection and Disabled-AzUpgradeDataCollection commands. .EXAMPLE PS C:\ Get-ModulePreferences Returns the data collection settings. #> [CmdletBinding()] Param ( ) Process { $configurationDirectory = "$home\" + ([Constants]::ConfigurationDirectoryName) $configurationFileFullPath = Join-Path -Path $configurationDirectory -ChildPath ([Constants]::ConfigurationFileName) try { if ((Test-Path -Path $configurationFileFullPath) -eq $false) { Write-Verbose -Message "Module configuration file $configurationFileFullPath does not exist, creating it now." $null = New-Item -Path $configurationDirectory -ItemType Directory -Force $newConfig = New-Object -TypeName ModulePreferences $newConfig.DataCollectionEnabled = $true $null = $newConfig | ConvertTo-Json | Out-File -FilePath $configurationFileFullPath -Force Write-Output -InputObject $newConfig } else { Write-Verbose -Message "Module configuration file $configurationFileFullPath exists, loading it now." $modulePreferencesRawJson = Get-Content -Path $configurationFileFullPath -Raw $existingConfig = [Newtonsoft.Json.JsonConvert]::DeserializeObject($modulePreferencesRawJson, [ModulePreferences]) Write-Output -InputObject $existingConfig } } catch { Write-Verbose -Message "Configuration file error: $_" # if we hit configuration file serialization issues, or file i/o # problems, then return an option set that assumes the user has # turned off data collection -- just to be safe. $newConfig = New-Object -TypeName ModulePreferences $newConfig.DataCollectionEnabled = $false Write-Output -InputObject $newConfig } } } |