1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| function buildInfosFileOfObject{
param($fileListSettings)
process{
$setInfoObject = @{} # New-Object System.Collections.Specialized.OrderedDictionary
$settingsFile = New-Object System.Collections.ArrayList
$keysFile = New-Object System.Collections.ArrayList
$informationSettingFiles = New-Object System.Collections.Specialized.OrderedDictionary
foreach( $settingNode in $settingsXml.selectNodes("/settings/importedFiles/file") ){
$settingsObjectXml = [xml](Get-Content (Join-path $settingsDirectory $settingNode.GetAttribute('path')).Replace('{0}', $id))
if(-not $settingsObjectXml ){
$nameObjectType = $settingNode.getAttribute('name')
$date = Get-Date
$fatal += "$date : FATAL ERROR - XML File not found : '$nameObjectType' for the bank '$id'"
writeInFileLog -message $fatal -fileLog $logFile
throw "Error : $nameObjectType not found for bank $id"
}
$settingsFile.add($settingsObjectXml)
$tempPath = Join-path $settingsDirectory $settingNode.GetAttribute('path').Replace('{0}', $id)
$settingObject = New-Object PSObject -Property @{
pathFile = $tempPath
nameOfSettingFile = $settingNode.GetAttribute('name')
fileListSetting = $settingsFile
}
$informationSettingFiles.add($settingNode.GetAttribute('name') , $settingObject)
}
for( $j = 0; $j -lt $fileListSettings.Count; $j++ ){
$arrayInfosFileOfObject = New-Object System.Collections.Specialized.OrderedDictionary
for( $i = 0; $i -lt $Global:BankList.Count; $i++ ){
$id = $Global:BankList[$i]
## le tableau des fichier lies au type d'objet qu'on va traiter
$csvArrayOfObjectType = buildInformationFilePerObject -settingsXml $fileListSettings[$j] -bankCode $id
$informationObjectType = New-Object PSObject -Property @{
nameObject = $fileListSettings[$j].settings.setting.listFile.name
privativeXMLParametrageOfObject = $fileListSettings[$j]
privatifParametrage = $csvArrayOfObjectType[0].methodCalculColumns
formatColumns = $csvArrayOfObjectType[0].formatColumns
columnsNameToReplace = $csvArrayOfObjectType[0].columnsNameToReplace
columnsPresentInOutPutFile = $csvArrayOfObjectType[0].columnsPresentInOutPutFile
filesToProcessForObject = $csvArrayOfObjectType
pathOfPrivativeFile = $informationSettingFiles[$fileListSettings[$j].settings.setting.listFile.name]
obligatoryColumns = $csvArrayOfObjectType[0].obligatoryColumns
}
$arrayInfosFileOfObject.add($id , $informationObjectType )
}
## map contenant par banque les infos des fichiers de conf
$setInfoObject.add($fileListSettings[$j].settings.setting.listFile.name, $arrayInfosFileOfObject )
}
write-host "tttttt $($setInfoObject.getType() )" # ===> tttttt System.Collections.Specialized.OrderedDictionary
return ,$setInfoObject
}
$tempSet = buildInfosFileOfObject -fileListSettings $filesXML
write-host " tempsSet $($tempSet.getType().fullName)" # ==> tempsSet System.Object[] de taille 3 ( 0 , 0, et mon orderedDictionnary )
$Global:SetSettingsAndCsvFilePerBank = $tempSet
write-host " sssss $($Global:SetSettingsAndCsvFilePerBank.count)" # ===>renvoie une taille de 3
} |
Partager