Skip to content

Instantly share code, notes, and snippets.

@plateaukao
Created March 11, 2020 15:16
Show Gist options
  • Save plateaukao/8acd05dca010ad895c16182ec0487ece to your computer and use it in GitHub Desktop.
Save plateaukao/8acd05dca010ad895c16182ec0487ece to your computer and use it in GitHub Desktop.
Future<List<GrammarItem>> getGrammarItemList({String categoryName = "", GrammarLevel grammarLevel = GrammarLevel.ALL}) async {
await initDB();
var query = """
select grammar.grammar_id, grammar.grammar_name, grammar.grammar_category, grammar.grammar_level, grammar_desc.desc_en, grammar_structure.structure_en
from grammar
inner join grammar_desc on grammar.grammar_id = grammar_desc.grammar_id
inner join grammar_structure on grammar.grammar_id = grammar_structure.grammar_id
""";
if (categoryName != "") {
query += 'where grammar_category like "%$categoryName%"';
}
if (grammarLevel != GrammarLevel.ALL) {
String level = grammarLevel.toString().split('.').last;
query += 'where grammar_level like "$level"';
}
try {
List<Map> maps = await _grammarDb.rawQuery(query);
return maps.map((rowData) => GrammarItem.fromMap(rowData)).toList();
} catch (e) { }
return [];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment