New-ItemContent.psm1
function New-ItemContent($cfg, $file, $type = "sql") { #we already have more types in other jobs # those will be consolidated here as well switch ($type) { "sql" { New-ItemContentWithSql $cfg $file; break;} # "sql" { New-ItemContentWithSql $cfg, $sql; break;} default { "Nothing generated" } } } function New-ItemContentWithSql($cfg, $file) { $rv = @{} $rv.add("tds", (Get-Date -Format "o")) $tc = 0 # table counter foreach ($dscfg in $cfg.datasets) { l ("Processing DataSet {0}" -f $dscfg.name) $tablenames = $dscfg.tablenames -split "," $ds = (Get-DataSetFromSQL (Get-Content $dscfg.sql -Raw) $cfg.cs.($dscfg.csname)) $qryresults = @{} for ($i = 0; $i -lt $ds.Tables.Count; $i++) { $table = $ds.Tables[$i] l "Adding table $tc" $r = New-Object System.Collections.Generic.List[System.Object] $table.Rows | Select-Object $table.Columns.ColumnName | ForEach-Object { $r.Add($_) } $qryresults.add($tablenames[$i], $r) $tc++ } $qryresults.add("tds", (Get-Date -Format "o")) $rv.add("$($dscfg.name)", $qryresults) } if ($tc -ne 0) { $rv | ConvertTo-Json -Depth 20 | add-content $file } else { l "No Data Found" } } Export-ModuleMember -Function New-ItemContent |