private DataTable ConvertToDataTable(string tableName, reportResultsPortfolioStruct reportReturn) { DataTable dt = new DataTable(tableName); string[] columns = GetColumnNames(reportReturn); DateTime sysDateVal = DateTime.Now; if (columns != null) { foreach (string s in columns) { DataColumn dc = new DataColumn(CheckColumnName(dt, s)); dt.Columns.Add(dc); } if (ifAddSysDate) { DataColumn dcs = new DataColumn("sysDate", System.Type.GetType("System.DateTime")); dt.Columns.Add(dcs); } if (reportReturn.results != null) { foreach (reportResultsStruct rrs in reportReturn.results) { if (rrs.addendumErrors != null) { foreach (reportResultsRecordStruct row in rrs.addendumErrors) { DataRow dr = dt.NewRow(); for (int j = 0; j < columns.Length; j++) { if (ifAutoReformatDates && row.field[j].name.ToLower().EndsWith("date")) dr[j] = AutoReformatDate(row.field[j].value); else if (!ifUseAsciiConversion) dr[j] = row.field[j].value; else dr[j] = Util.Xml2Ascii(row.field[j].value); } if (ifAddSysDate) dr[columns.Length] = sysDateVal; dt.Rows.Add(dr); } } if (rrs.record != null) { foreach (reportResultsRecordStruct row in rrs.record) { DataRow dr = dt.NewRow(); for (int j = 0; j < columns.Length; j++) { if (ifAutoReformatDates && row.field[j].name.ToLower().EndsWith("date")) dr[j] = AutoReformatDate(row.field[j].value); else if (!ifUseAsciiConversion) dr[j] = row.field[j].value; else dr[j] = Util.Xml2Ascii(row.field[j].value); } if (ifAddSysDate) dr[columns.Length] = sysDateVal; dt.Rows.Add(dr); } } } } } return dt; }
private string[] GetColumnNames(reportResultsPortfolioStruct selectReturn) { reportResultsRecordStruct record0 = null; foreach (reportResultsStruct rrs in selectReturn.results) { if (!ifUseAddendumErrorsOnly && rrs.record != null && rrs.record[0] != null) { record0 = rrs.record[0]; } else if (rrs.addendumErrors != null && rrs.addendumErrors[0] != null) { record0 = rrs.addendumErrors[0]; } else record0 = null; if (record0 != null) break; } string[] columns = null; if (record0 != null) { int columnCount = record0.field.Length; columns = new string[columnCount]; for (int i = 0; i < columnCount; i++) columns[i] = record0.field[i].name; } return columns; }
private DataTable getAddendumErrors(string tableName, reportResultsPortfolioStruct reportReturn) { DataTable dt = new DataTable(); dt.Columns.Add("EventNumber"); dt.Columns.Add("ErrorMessage"); DataRow dr = null; if (reportReturn.results != null) { foreach (reportResultsStruct rrs in reportReturn.results) { if (rrs.addendumErrors != null) { foreach (reportResultsRecordStruct row in rrs.addendumErrors) { foreach (reportResultsVectorElement field in row.field) { switch (field.name) { case "EventNumber": dr = dt.NewRow(); dr[0] = field.value.Trim(); break; case "ErrorMessage": dr[1] = field.value.Trim(); DateTime addendumDate = GetAddendumErrorDate(field.value); DateTime cutoffDate = DateTime.Today.AddMonths(-1); string dayStartFrom = String.Empty; ParseArgs("*ADDENDUMERRORS_STARTDATE*", ref dayStartFrom); DateTime.TryParse(dayStartFrom.Replace(":00:00:00", ""), out cutoffDate); if (addendumDate.CompareTo(cutoffDate) > 0) dt.Rows.Add(dr); break; } } } } } } return dt; }