getSymptoms method

Future<List<Symptoms>> getSymptoms()

get all symptoms list

Implementation

Future<List<Symptoms>> getSymptoms() async {
  Database? db = await instance.database;

  final List<Map<String, dynamic>> queryResponse = await db!.rawQuery(
      "Select * from $tableSymptomsData WHERE $columnIsVisibleCategory=1"); // TODO Add where condition for columnIsVisibleCategory
  List<Symptoms> listSymptoms = [];
  Symptoms? symptoms = Symptoms(symptomsData: <SymptomsData>[]);
  int? catId = -1;
  List.generate(queryResponse.length, (i) {
    SymptomsData? symptomsData = SymptomsData();
    if (catId == -1) {
      catId = queryResponse[i][columnCategoryId];
      symptoms = Symptoms();
      symptoms!.categoryId = queryResponse[i][columnCategoryId];
      symptoms!.categoryName = queryResponse[i][columnCategoryName];
      symptoms!.categoryColor = queryResponse[i][columnCategoryColor];
      symptoms!.isVisibleCategory = queryResponse[i][columnIsVisibleCategory];
    }
    if (catId != queryResponse[i][columnCategoryId]) {
      listSymptoms.add(symptoms!);
      symptoms = Symptoms();
      symptoms!.categoryId = queryResponse[i][columnCategoryId];
      symptoms!.categoryName = queryResponse[i][columnCategoryName];
      symptoms!.categoryColor = queryResponse[i][columnCategoryColor];
      symptoms!.isVisibleCategory = queryResponse[i][columnIsVisibleCategory];
      catId = queryResponse[i][columnCategoryId];
    } else {
      symptomsData.symptomName = queryResponse[i][columnSymptomName];
      symptomsData.symptomId = queryResponse[i][columnSymptomId];
      symptomsData.id = queryResponse[i][columnID];
      if (symptoms!.symptomsData == null) {
        symptoms!.symptomsData = [];
      }
      symptoms!.symptomsData!.add(symptomsData);
    }
  });

  if (symptoms != null) {
    listSymptoms.add(symptoms!);
  }
  return listSymptoms;
}