getWaterLineList method
Future<List<WaterLineDto> >
getWaterLineList(
- int? ts,
- SqlOperator? tsOperator,
- int? table_id,
- List<
int> ? excludeTableIdList, - List<
WaterState> ? stateList, - Set<
WaterError> ? errorEnumSet, - SortOrderType? sortOrder,
- int? limit,
Implementation
Future<List<WaterLineDto>> getWaterLineList(
int? ts,
SqlOperator? tsOperator,
int? table_id,
List<int>? excludeTableIdList,
List<WaterState>? stateList,
Set<WaterError>? errorEnumSet,
SortOrderType? sortOrder,
int? limit) async {
String limitSql = "";
if (tsOperator == null) tsOperator = SqlOperator.EQUAL;
FieldData fieldData = WaterLineDto.getSelectFieldData();
WhereData whereData = getWaterLineWhereData(
ts, tsOperator, table_id, excludeTableIdList, stateList, errorEnumSet);
if (limit != null) {
limitSql = " LIMIT " + limit.toString();
}
String sql;
if (tsOperator != SqlOperator.MAX) {
sql = sqlCommands.select(fieldData, whereData) + " ORDER BY water_ts";
if (sortOrder == SortOrderType.PRIMARY_KEY_DESC) sql += " DESC ";
sql += limitSql;
} else {
WhereGenerator whereGenerator =
WhereGenerator(transaction.getTools()!.dbType, smd);
sql = sqlCommands.select(fieldData, null);
whereData.set("water_ts", SqlOperator.LESS, WaterLineDto.min_id_for_user);
sql += " FROM $tableName "
" WHERE water_ts=(" +
" SELECT MAX(water_ts) " +
" FROM " +
tableName +
whereGenerator.getWhereString(whereData) +
" )";
}
List<WaterLineDto> list = [];
RawTableData rawTableData;
print(sql);
try {
rawTableData = await transaction.getConnection().query(sql, fieldData);
if (rawTableData.rowCount == 0)
throw SqlException(SqlExceptionEnum.ENTRY_NOT_FOUND,
sql: sql, json: fieldData.toJson());
rawTableData.getRawRows().forEach((RawRowData rawRowData) {
list.add(WaterLineDto.field(rawRowData.getFieldData(), smd));
});
} on SqlException catch (e) {
SqlExceptionEnum sen =
(e.sqlExceptionEnum == SqlExceptionEnum.TABLE_NOT_FOUND)
? SqlExceptionEnum.ENTRY_NOT_FOUND
: e.sqlExceptionEnum;
throw SqlException(sen,
cause: e.cause, sql: sql, json: fieldData.toJson());
}
return list;
}