public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
{
DataTable dataTable = obj as DataTable;
if (dataTable != null)
{
Dictionary<string, object> dicRows = new Dictionary<string, object>();
ArrayList list = new ArrayList();
Action<Dictionary<string, object>, DataTable, int> populateColumns = this.populateColumnsOne;
if (dataTable.Columns.Count == 2)
populateColumns = this.populateColumnsTwo;
if (dataTable.Columns.Count == 3)
populateColumns = this.populateColumnsThree;
if (dataTable.Columns.Count == 4)
populateColumns = this.populateColumnsFour;
if (dataTable.Columns.Count == 5)
populateColumns = this.populateColumnsFive;
if (dataTable.Columns.Count == 6)
populateColumns = this.populateColumnsSix;
if (dataTable.Columns.Count == 7)
populateColumns = this.populateColumnsSeven;
if (dataTable.Columns.Count == 8)
populateColumns = this.populateColumnsEight;
if (dataTable.Columns.Count == 9)
populateColumns = this.populateColumnsNine;
if (dataTable.Columns.Count == 10)
populateColumns = this.populateColumnsTen;
if (dataTable.Columns.Count == 11)
populateColumns = this.populateColumnsEleven;
if (dataTable.Columns.Count == 12)
populateColumns = this.populateColumnsTwelve;
if (dataTable.Columns.Count == 13)
populateColumns = this.populateColumnsThirteen;
if (dataTable.Columns.Count == 14)
populateColumns = this.populateColumnsFourteen;
if (dataTable.Columns.Count == 15)
populateColumns = this.populateColumnsFithteen;
for (int i = 0; i < dataTable.Rows.Count; i ++)
{
Dictionary<string, object> dicRow = new Dictionary<string, object>();
populateColumns(dicRow, dataTable, i);
list.Add(dicRow);
}
dicRows.Add("Data", list);
return dicRows;
}
return null;
}