/// <summary> /// Obtains the fields in a table /// </summary> /// <param name="connection"></param> /// <param name="_source"></param> /// <param name="database"></param> /// <param name="owner"></param> /// <param name="table"></param> /// <returns></returns> public QvDataContractResponse getFields(QvGamsConnection connection, string _source, string database, string owner, string table) { string file = database + "\\" + owner; if (database != string.Empty && owner != string.Empty) { using (GAMSHelper gh = new GAMSHelper(_source, file)) { gh.LoadGAMSFile(connection); var currentTable = connection.FindTable(table, connection.MTables); return(new QvDataContractFieldListResponse { qFields = (currentTable != null) ? currentTable.Fields : new QvxField[0] }); } } else { return(new QvDataContractFieldListResponse { qFields = new QvxField[0] }); } }
/// <summary> /// Obtains the data for the preview using the high level Gams API /// </summary> /// <param name="connection"></param> /// <param name="_source"></param> /// <param name="database"></param> /// <param name="owner"></param> /// <param name="tableName"></param> /// <returns></returns> private PreviewResponse getPreview(QvGamsConnection connection, string _source, string database, string owner, string tableName) { string file = database + "\\" + owner; var result = new PreviewResponse(); if (database != string.Empty && owner != string.Empty && tableName != string.Empty) { using (GAMSHelper gh = new GAMSHelper(_source, file)) { gh.LoadGAMSFile(connection); string symbolName = tableName.Trim(); var currentTable = connection.FindTable(tableName, connection.MTables); // Store the table Header var row = new PreviewRow(); foreach (var field in currentTable.Fields) { row.qValues.Add(field.FieldName); } result.qPreview.Add(row); // Getting the preview data string[,] PreviewTableData = gh.GetPreviewData(currentTable, 9); int FinalNumberOfRows = PreviewTableData.GetLength(0); int NumberOfColumns = PreviewTableData.GetLength(1); for (int i = 0; i < FinalNumberOfRows; i++) { row = new PreviewRow(); for (int j = 0; j < NumberOfColumns; j++) { row.qValues.Add(PreviewTableData[i, j]); } result.qPreview.Add(row); } } } return(result); }