initDataRange static method

Future<Map<int, RangeValue>> initDataRange(
  1. String tableName,
  2. List<Map<String, Object?>?>? dtData, {
  3. bool override = false,
})

Implementation

static Future<Map<int, RangeValue>> initDataRange(
  String tableName,
  List<Map<String, Object?>?>? dtData, {
  bool override = false,
}) async {
  if (Common.mapRange.containsKey(tableName) && !override) {
    return Common.mapRange[tableName] ?? {};
  }
  Map<int, RangeValue> listVal = {};
  try {
    if (dtData == null || dtData.isEmpty) {
      var ds = await SQLService.execute(
        'sp_getValueDataRange',
        params: {'@tableName': tableName},
      );
      if (ds.isEmpty) return listVal;
      dtData = ds['sp_getValueDataRange'] ?? ds.values.first;
    }
    dtData ??= [];
    for (var row in dtData) {
      int id = Methods.getInt(row, 'ID', defaultValue: -1);
      String title = Methods.getString(row, 'title');
      double from = Methods.getDouble(row, 'valFrom', defaultValue: 0);
      double to = Methods.getDouble(row, 'valTo', defaultValue: 0);
      if (id < 0) continue;
      listVal[id] = RangeValue(from, to, title: title);
    }
    Common.mapRange[tableName] = listVal;
  } catch (ex) {
    if (kDebugMode) {
      print('[Exception] initDataRange: $ex');
    }
  }
  if (kDebugMode) {
    print('getValueDataPicker: $tableName count: ${listVal.length}');
  }
  return listVal;
}