Skip to content

Commit 5564476

Browse files
committed
Refactor error handling and parameter processing in Get-SqlDscStartupParameter function
1 parent b7e83a6 commit 5564476

File tree

1 file changed

+42
-36
lines changed

1 file changed

+42
-36
lines changed

source/Public/Get-SqlDscStartupParameter.ps1

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -73,56 +73,62 @@ function Get-SqlDscStartupParameter
7373
$InstanceName = 'MSSQLSERVER'
7474
)
7575

76-
$originalErrorActionPreference = $ErrorActionPreference
77-
78-
$ErrorActionPreference = 'Stop'
76+
begin
77+
{
78+
$originalErrorActionPreference = $ErrorActionPreference
7979

80-
Assert-ElevatedUser -ErrorAction 'Stop'
80+
$ErrorActionPreference = 'Stop'
8181

82-
$ErrorActionPreference = $originalErrorActionPreference
82+
Assert-ElevatedUser -ErrorAction 'Stop'
8383

84-
if ($PSCmdlet.ParameterSetName -eq 'ByServiceObject')
85-
{
86-
$ServiceObject | Assert-ManagedServiceType -ServiceType 'DatabaseEngine'
84+
$ErrorActionPreference = $originalErrorActionPreference
8785
}
8886

89-
if ($PSCmdlet.ParameterSetName -eq 'ByServerName')
87+
process
9088
{
91-
$getSqlDscManagedComputerServiceParameters = @{
92-
ServerName = $ServerName
93-
InstanceName = $InstanceName
94-
ServiceType = 'DatabaseEngine'
89+
if ($PSCmdlet.ParameterSetName -eq 'ByServiceObject')
90+
{
91+
$ServiceObject | Assert-ManagedServiceType -ServiceType 'DatabaseEngine'
9592
}
9693

97-
$ServiceObject = Get-SqlDscManagedComputerService @getSqlDscManagedComputerServiceParameters
98-
99-
if (-not $ServiceObject)
94+
if ($PSCmdlet.ParameterSetName -eq 'ByServerName')
10095
{
101-
$writeErrorParameters = @{
102-
Message = $script:localizedData.StartupParameter_Get_FailedToFindServiceObject
103-
Category = 'InvalidOperation'
104-
ErrorId = 'GSDSP0001' # CSpell: disable-line
105-
TargetObject = $ServiceObject
96+
$getSqlDscManagedComputerServiceParameters = @{
97+
ServerName = $ServerName
98+
InstanceName = $InstanceName
99+
ServiceType = 'DatabaseEngine'
106100
}
107101

108-
Write-Error @writeErrorParameters
102+
$ServiceObject = Get-SqlDscManagedComputerService @getSqlDscManagedComputerServiceParameters
103+
104+
if (-not $ServiceObject)
105+
{
106+
$writeErrorParameters = @{
107+
Message = $script:localizedData.StartupParameter_Get_FailedToFindServiceObject
108+
Category = 'InvalidOperation'
109+
ErrorId = 'GSDSP0001' # CSpell: disable-line
110+
TargetObject = $ServiceObject
111+
}
112+
113+
Write-Error @writeErrorParameters
114+
}
109115
}
110-
}
111116

112-
Write-Verbose -Message (
113-
$script:localizedData.StartupParameter_Get_ReturnStartupParameters -f $InstanceName, $ServerName
114-
)
117+
Write-Verbose -Message (
118+
$script:localizedData.StartupParameter_Get_ReturnStartupParameters -f $InstanceName, $ServerName
119+
)
115120

116-
$startupParameters = $null
121+
$startupParameters = $null
117122

118-
if ($ServiceObject.StartupParameters)
119-
{
120-
$startupParameters = [StartupParameters]::Parse($ServiceObject.StartupParameters)
121-
}
122-
else
123-
{
124-
Write-Debug -Message ($script:localizedData.StartupParameter_Get_FailedToFindStartupParameters -f $MyInvocation.MyCommand)
125-
}
123+
if ($ServiceObject.StartupParameters)
124+
{
125+
$startupParameters = [StartupParameters]::Parse($ServiceObject.StartupParameters)
126+
}
127+
else
128+
{
129+
Write-Debug -Message ($script:localizedData.StartupParameter_Get_FailedToFindStartupParameters -f $MyInvocation.MyCommand)
130+
}
126131

127-
return $startupParameters
132+
return $startupParameters
133+
}
128134
}

0 commit comments

Comments
 (0)