functions/New-SynergyDataImport.ps1
<#
.Synopsis This cmdlet will take a Powershell array object and convert it to an XML file formatted for Synergy Generic Conversion. .DESCRIPTION Long description .EXAMPLE Example of how to use this cmdlet .EXAMPLE Another example of how to use this cmdlet #> function New-SynergyDataImport { [CmdletBinding()] [Alias()] [OutputType([int])] Param ( # Import Object [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] $ImportObject, # InputFormat [ValidateSet("StudentData", "StudentBus", "GridCodes")] [string]$InputFormat, # OverwriteFlag $OverwriteFlag, # SchoolCode $SchoolCode, # SchoolYear $SchoolYear ) switch ($InputFormat) { 'StudentData' { [xml]$ImportXML = @" <ROOT OVERWRITE_STUDENT="$overwriteFlag" DEBUG="1" > $( $ImportObject | ForEach-Object { '<STUDENT LAST_NAME="{0}" FIRST_NAME="{1}" SIS_NUMBER="{2}" E_MAIL="{3}" />' -f $_.LastName, $_.FirstName, $_.SISID, $_.Email } ) </ROOT> "@ Return $ImportXML } 'StudentBus' { [xml]$xmlData = @" <?xml version="1.0" encoding="UTF-8"?><ROOT> $($ImportObject | ForEach-Object { '<STUDENT_SCHOOL_YEAR SIS_NUMBER="{0}" SCHOOL_CODE="{1}" SCHOOL_YEAR="{2}" BUS_TO_SCHOOL="{3}" />' -f $_.'Perm ID', $SchoolCode, $SchoolYear, [System.Security.SecurityElement]::Escape($_.BusRoute) } ) </ROOT> "@ Return $xmlData } 'GridCodes' { [xml]$xmlData = @" <ROOT> $( $importObject | ForEach-Object { '<STREET GRID_CODE="{0}" ELEMENTARY="{1}" SCHOOL_YEAR="{2}" CITY="{3}" STATE"{4}" STREET_NAME="{5}" STREET_LOW_ADDRESS={6} STREET_HIGH_ADDRESS="{7}" STREET_INC_ADDRESS="{8} STREET_ODD_EVEN="{9} STREET_DIRECTION="{10}" STREET_TYPE="{11}" ZIP5="{12} />' ` -f $_.gc, $_.e, $_.sy, $_.city, $_.state, $_.st, $_.low, $_.high })</ROOT> "@ Return $xmlData } } } |