examples/Copy-Users.ps1

Import-Module .\PSBlackboard.psm1 -Verbose -force
#Get Prod Data
#$ProdUsers = Get-BBUsers -verbose
#$ProdDataSources = Get-BBDataSources
#$ProdSystemRoles = Get-BBRoles -RoleType System | Where-Object {$_.custom -eq $True}
#$ProdInstitutionRoles = Get-BBRoles -RoleType Institution | Where-Object {$_.custom -eq $True}

#Get Test Data
#$TestUsers = Get-BBUsers -Environment Test -Verbose
#$TestDataSources = Get-BBDataSources -Environment Test

#Other Variables
$CreatedUsers = @()

#For each prod user, determine if it needs to be made,
# if it does, determine the corresponding institution and system roles exist in test, then create the user in test.
$Comparement = Compare-Object -ReferenceObject $ProdUsers -DifferenceObject $TestUsers -Property externalId


foreach($Difference in $($Comparement | Where-Object {$_.SideIndicator -eq '<='})){
    #Find the prod user to use
    $User = $ProdUsers | Where-Object {$_.externalId -eq $Difference.externalID}
    #Determine the corresponding data source ID in test by comparing externalID's and update the datasource id. #If it doesn't, you'll want to run Copy-DataSources.ps1.
    $ProdDataSource = $ProdDataSources | Where-Object {$_.id -eq $User.dataSourceId}
    $MatchedDataSoure = $TestDataSources | Where-Object {$_.externalId -eq $ProdDataSource.externalId}
    $User.dataSourceId = $MatchedDataSoure.id
    $CreatedUsers += $User | New-BBUser -Environment Test -Verbose
    }