private DataSet QueryResultsParseDataSet(string fields, NamedList namedList, string highlightFields, out long recordCount) { ObjectDeserializeTable <T> objectDeserializeTable = new ObjectDeserializeTable <T>(this._TableName, fields); ISolrResponseParser <NamedList, QueryResults <DataRow> > solrResponseParser = new BinaryQueryResultsParser <DataRow>(objectDeserializeTable); if (!string.IsNullOrWhiteSpace(highlightFields)) { BinaryHighlightingParser binaryHighlightingParser = new BinaryHighlightingParser(); IDictionary <string, IDictionary <string, IList <string> > > highlight = binaryHighlightingParser.Parse(namedList); objectDeserializeTable.Highlight = highlight; } QueryResults <DataRow> queryResults = solrResponseParser.Parse(namedList); recordCount = queryResults.NumFound; DataSet dataSet = new DataSet(); DataTable dataTable = objectDeserializeTable.CreateDataTable(); foreach (DataRow current in queryResults) { dataTable.Rows.Add(current.ItemArray); } dataSet.Tables.Add(dataTable); DataTable dataTable2 = new DataTable(); dataTable2.TableName = "RecordCount"; dataTable2.Columns.Add("RecordCount", typeof(long)); DataRow dataRow = dataTable2.NewRow(); dataRow["RecordCount"] = recordCount; dataTable2.Rows.Add(dataRow); dataSet.Tables.Add(dataTable2); return(dataSet); }
public static DataSet ParserResultsDataSet <T>(this NamedList namedList, string fields, out long recordCount, string tableName = "") where T : class, new() { ObjectDeserializeTable <T> objectDeserializeTable = new ObjectDeserializeTable <T>(tableName, fields); ISolrResponseParser <NamedList, QueryResults <DataRow> > solrResponseParser = new BinaryQueryResultsParser <DataRow>(objectDeserializeTable); BinaryHighlightingParser binaryHighlightingParser = new BinaryHighlightingParser(); IDictionary <string, IDictionary <string, IList <string> > > highlight = binaryHighlightingParser.Parse(namedList); objectDeserializeTable.Highlight = highlight; QueryResults <DataRow> queryResults = solrResponseParser.Parse(namedList); recordCount = queryResults.NumFound; DataSet dataSet = new DataSet(); DataTable dataTable = objectDeserializeTable.CreateDataTable(); foreach (DataRow current in queryResults) { dataTable.Rows.Add(current.ItemArray); } dataSet.Tables.Add(dataTable); DataTable dataTable2 = new DataTable(); dataTable2.TableName = "RecordCount"; dataTable2.Columns.Add("RecordCount", typeof(long)); DataRow dataRow = dataTable2.NewRow(); dataRow["RecordCount"] = recordCount; dataTable2.Rows.Add(dataRow); dataSet.Tables.Add(dataTable2); return(dataSet); }