Public/convert-AllegisIDNProfileElementsToJSON.ps1

function convert-AllegisIDNProfileElementsToJSON ($importfromps)
{
    $buildreference = @()
    $buildruletype = @()
    $buildAccountType = @()
    foreach ($File in $importfromps)
    {
        $reference = $null
        $ruleattribute = $null
        $reference = $file | ? {$_.type -eq "reference"}
        $ruleattribute= $file | ? {$_.type -eq "rule"}

        #building Json for import
        if ($file.type -eq "reference")
        {  
            #transformation Build
            $buildreference+= ",
{
    ""attributeName"":""$($file.attributename)"",
    ""attributes"":{
        ""id"":""$($file.id)"",
        ""input"":{
            ""attributes"":{
                ""applicationId"":""$($file.applicationId)"",
                ""applicationName"":""$($file.applicationname)"",
                ""attributeName"":""$($file.attributenameofsource)"",
                ""sourceName"":""$($file.sourcename)""
            },
            ""type"":""accountAttribute""
        }
    },
    ""type"":""$($file.type)""
} "

        }
        elseif ($file.type -eq "rule")
        {
            $buildruletype+= ",
{
""attributeName"":""$($file.attributeName)"",
""attributes"":{
    ""id"":""$($file.id)"",
    ""name"":""$($file.name)""
},
""type"":""$($file.type)""
} "

        }
        else
        {
                #Building Direct mapping
                $buildAccountType+=  ",
{
    ""attributeName"":""$($file.attributeName)"",
    ""attributes"":{
        ""applicationId"":""$($file.applicationId)"",
        ""applicationName"":""$($file.applicationName)"",
        ""attributeName"":""$($file.attributenameofsource)"",
        ""sourceName"":""$($file.sourcename)""
    },
    ""type"":""accountAttribute""
}"

        }
        $combine = $buildAccountType + $buildreference + $buildruletype
        $blah = ($combine | Out-String).Substring(1)
        $final = "[" + $blah + "]"
    }
    return $final
}