@@ -29,34 +29,50 @@ function Invoke-ExecRestoreBackup {
2929 throw " Failed to parse backup JSON: $ ( $_.Exception.Message ) "
3030 }
3131
32+ $SelectedTypes = $Request.Body.SelectedTypes
33+ if ($SelectedTypes -and $SelectedTypes.Count -gt 0 ) {
34+ $BackupData = $BackupData | Where-Object {
35+ $item = $_
36+ if ($item.table -eq ' templates' ) {
37+ $typeKey = " templates:$ ( $item.PartitionKey ) "
38+ } else {
39+ $typeKey = $item.table
40+ }
41+ $SelectedTypes -contains $typeKey
42+ }
43+ }
44+ $RestoredCount = 0
3245 $BackupData | ForEach-Object {
3346 $Table = Get-CippTable - tablename $_.table
3447 $ht2 = @ {}
3548 $_.psobject.properties | ForEach-Object { $ht2 [$_.Name ] = [string ]$_.Value }
3649 $Table.Entity = $ht2
37- Add-CIPPAzDataTableEntity @Table - Force
50+ Add-AzDataTableEntity @Table - Force
51+ $RestoredCount ++
3852 }
39- Write-LogMessage - headers $Request.Headers - API $APINAME - message " Restored backup $ ( $Request.Body.BackupName ) " - Sev ' Info'
53+ Write-LogMessage - headers $Request.Headers - API $APINAME - message " Restored backup $ ( $Request.Body.BackupName ) - $RestoredCount rows restored " - Sev ' Info'
4054 $body = [pscustomobject ]@ {
41- ' Results' = ' Successfully restored backup.'
55+ ' Results' = " Successfully restored $RestoredCount rows from backup."
4256 }
4357 } else {
4458 $body = [pscustomobject ]@ {
4559 ' Results' = ' Backup not found.'
4660 }
4761 }
4862 } else {
63+ $RestoredCount = 0
4964 foreach ($line in ($Request.body | Select-Object * - ExcludeProperty ETag, Timestamp)) {
5065 $Table = Get-CippTable - tablename $line.table
5166 $ht2 = @ {}
5267 $line.psobject.properties | ForEach-Object { $ht2 [$_.Name ] = [string ]$_.Value }
5368 $Table.Entity = $ht2
5469 Add-AzDataTableEntity @Table - Force
70+ $RestoredCount ++
5571 }
56- Write-LogMessage - headers $Request.Headers - API $APINAME - message " Restored backup $ ( $Request .Body.BackupName ) " - Sev ' Info'
72+ Write-LogMessage - headers $Request.Headers - API $APINAME - message " Restored backup - $RestoredCount rows restored " - Sev ' Info'
5773
5874 $body = [pscustomobject ]@ {
59- ' Results' = ' Successfully restored backup.'
75+ ' Results' = " Successfully restored $RestoredCount rows from backup."
6076 }
6177 }
6278 } catch {
0 commit comments