adhoc/unused-objects.ps1

$SubscriptionName = 'MVP'
Set-AzContext -Subscription $SubscriptionName
#Get-AzContext
$ErrorActionPreference = 'Stop'
$DebugPreference = "SilentlyContinue"
$VerbosePreference = 'Continue'


Set-Location "X:\!WORK\GitHub\!SQLPlayer\azure.datafactory.tools\"
$modules = 'azure.datafactory.tools'
Remove-Module -Name $modules -ErrorAction:Ignore
Import-Module ".\azure.datafactory.tools.psd1" -Force
Get-Module azure.datafactory.tools

$ResourceGroupName = 'rg-devops-factory'
$Location = "NorthEurope"
$RootFolder = "x:\!WORK\GitAz\sqlplayer\DataServices\ADF-demo - Copy\BigFactorySample2" 
$DataFactoryName = (Split-Path -Path $RootFolder -Leaf) + '-17274af1'
$DataFactoryName




# issue 37
$adf = Import-AdfFromFolder -FactoryName "$DataFactoryName" -RootFolder "$RootFolder"
$list = $adf.GetUnusedDatasets()
$list
$list.GetType()

$adf.DataSets

[System.Collections.ArrayList] $dataset_list = @{}
$adf.DataSets | ForEach-Object `
{
    $null = $dataset_list.Add("$($_.Type).$($_.Name)") 
}

foreach ($i in $adf.Pipelines.DependsOn + $adf.DataFlows.DependsOn)
{
    $i
}

# Collect all objects used by pipelines and dataflows
$list = $adf.Pipelines.DependsOn + $adf.DataFlows.DependsOn
# Filter list to datasets only
$used = $list | Where-Object { $_.StartsWith('dataset.', "CurrentCultureIgnoreCase") } | `
                ForEach-Object { $_.Substring(8).Insert(0, 'dataset.') } | `
                Select-Object -Unique
$used

$used | ForEach-Object { $dataset_list.Remove($_, "CurrentCultureIgnoreCase") }
$used

# Test when adf has just been created and is empty
$modules = 'azure.datafactory.tools'
Remove-Module -Name $modules -ErrorAction:Ignore
.\debug\~~Load-all-cmdlets-locally.ps1

$adf = New-Object -TypeName Adf
$adf.GetUnusedDatasets()