Providers/DatabaseProvider.ps1
# # DatabaseProvider.ps1 # #region Parameters [CmdletBinding()] param ( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [string] $DatabaseName ); #endregion #region FUNCTIONS FUNCTION Get-Registry { [CmdletBinding()] Param () [PSObject]$RegistryModel = ` @{ DatabaseName = $DatabaseName; }; #region Create table if not exist and Get saved registry if any $RegistrySetupTemplateFile = "$($PSScriptRoot)\$FolderName\Registry-Setup.sql.template"; $Query = Get-FormattedTemplate -Model $(ConvertTo-Json $RegistryModel) -Path $RegistrySetupTemplateFile -Silent:$true; $TempQuery = [System.IO.File]::ReadAllText("$($PSScriptRoot)\$FolderName\Get-Registry.sql.template"); $Query = -join($Query, "`n", $TempQuery); #endregion $Data = Invoke-Sqlcmd ` -AbortOnError:$false ` -ErrorAction $ErrorActionPreference ` -Query $Query ` -QueryTimeout $SqlQueryTimeout ` -ServerInstance $SQLServerName ` -Username $SQLServerUserName ` -Password $SQLServerPassword ; RETURN $Data; } FUNCTION Set-Registry { [CmdletBinding()] Param ( [Parameter(Mandatory=$true)] [psobject] $Model ) Begin { [PSObject]$RegistryModel = ` @{ DatabaseName = $DatabaseName; }; #region Create table if not exist $RegistrySetupTemplateFile = "$($PSScriptRoot)\$FolderName\Registry-Setup.sql.template"; $Query = Get-FormattedTemplate -Model $(ConvertTo-Json $RegistryModel) -Path $RegistrySetupTemplateFile -Silent:$true; #endregion $SetRegistryTemplateFile = "$($PSScriptRoot)\$FolderName\Set-Registry.sql.template"; $InsertQuery = Get-FormattedTemplate -Model $(ConvertTo-Json $Model) -Path $SetRegistryTemplateFile -Silent:$true; $Query = -join($Query, "`n", $InsertQuery); } Process { Try { Write-Verbose "Executing the below QUERY..."; Write-Verbose $Query; Invoke-Sqlcmd ` -ErrorAction: Stop ` -AbortOnError:$false ` -Query $Query ` -QueryTimeout $SqlQueryTimeout ` -ServerInstance $SQLServerName ` -Username $SQLServerUserName ` -Password $SQLServerPassword; } Catch { Write-Host "Error: $_.Exception" -ForegroundColor Red; } } } #endregion |