$databaseName = $actionData["databaseName"] $filename = $actionData["filename"] $resourceLoaderType = ([System.Type]::GetType("Sitecore.Data.DataProviders.ReadOnly.Protobuf.IResourceLoader, Sitecore.Data.ResourceItems.ProtobufNet")) $resourceLoader = [Sitecore.DependencyInjection.ServiceLocator]::ServiceProvider.GetService($resourceLoaderType) $paths = [System.Collections.Generic.List[String]]@() $paths.Add([Sitecore.MainUtil]::MapPath("/App_Data/items/$($databaseName)/$($filename)")) > $null $paths.Add([Sitecore.MainUtil]::MapPath("/sitecore modules/items/$($databaseName)/$($filename)")) > $null $defaultFieldValues = New-Object -TypeName 'System.Collections.Generic.Dictionary[[guid], [string]]' $database = [Sitecore.Configuration.Factory]::GetDatabase($databaseName) $connectionString = [System.Configuration.ConfigurationManager]::ConnectionStrings[$databaseName] $callContext = New-Object -TypeName "Sitecore.Data.DataProviders.CallContext, Sitecore.Kernel" -ArgumentList @($database.DataManager, $database.DataProviders.Count) $sqlDataProvider = New-Object -TypeName "Sitecore.Data.SqlServer.SqlServerDataProvider, Sitecore.Kernel" -ArgumentList @($connectionString) foreach($item in $selectedData) { $itemDefinition = $sqlDataProvider.GetItemDefinition($item.ID, $callContext) if($itemDefinition) { $sqlDataProvider.DeleteItem($itemDefinition, $callContext) > $null } } $reportItems = [System.Collections.ArrayList]@() $itemDataSet = $resourceLoader.LoadFromFiles($paths, "dat", $defaultFieldValues) foreach($itemRecord in $itemDataSet.Definitions.Values) { $id = New-Object -TypeName "Sitecore.Data.ID, Sitecore.Kernel" -ArgumentList @($itemRecord.ID) $itemDefinition = $sqlDataProvider.GetItemDefinition($id, $callContext) if($itemDefinition) { $reportItems.Add((Get-Item -Path "$($databaseName):" -ID ([ID]::Parse($itemRecord.ID)))) > $null } } $reportItems | Update-ListView