public void AddFrageToDatabase(Fragen frage) { DAOFrage dAOFrage = new DAOFrage(); var db = new SQLiteConnection(pathToDb); dAOFrage.text = frage.getText(); foreach (Antworten antwort in frage.getAntwort()) { DAOAntwort dAOAntwort = new DAOAntwort(); dAOAntwort.text = antwort.getText(); dAOAntwort.isCorrect = antwort.getStatus(); db.Insert(dAOAntwort); DAOFrageAntwort dAOFrageAntwort = new DAOFrageAntwort(); dAOFrageAntwort.AID = dAOAntwort.Id; dAOFrageAntwort.FID = dAOFrage.Id; db.Insert(dAOFrageAntwort); } foreach (Kategorien kategorie in frage.getKategorie()) { bool check = false; uint?i = 0; foreach (Kategorien dbKategorie in this.getAllKategorien()) { if (dbKategorie.titel.Equals(kategorie.titel)) { check = true; i = dbKategorie.id; } } if (check == false) { DAOKategorie dAOKategorie = new DAOKategorie(); dAOKategorie.title = kategorie.titel; dAOKategorie.description = kategorie.beschreibung; db.Insert(dAOKategorie); i = dAOKategorie.Id; } DAOFrageKategorie dAOFrageKategorie = new DAOFrageKategorie(); dAOFrageKategorie.KID = i; dAOFrageKategorie.FID = dAOFrage.Id; db.Insert(dAOFrageKategorie); } db.Insert(dAOFrage); setFragenList(); }
public void wipeDataAndFillFromRemote() { var db = new SQLiteConnection(pathToDb); this.dropAllTables(); this.initializeSQLiteDatabase(); string url = UrlToBackend; var tableSettings = db.Table <DAOSetting>(); foreach (DAOSetting s in tableSettings) { if (s.key.Equals("urlToBackend")) { url = s.value; } } String jsonFragen = (new WebClient()).DownloadString(url + "fragen"); String jsonKategorien = (new WebClient()).DownloadString(url + "kategorien"); JsonDocument jsonDocFragen = JsonDocument.Parse(jsonFragen); JsonDocument jsonDocKategorien = JsonDocument.Parse(jsonKategorien); foreach (JsonElement element in jsonDocFragen.RootElement.EnumerateArray()) { DAOFrage nFrage = new DAOFrage(); nFrage.explanation = element.GetProperty("explanation").GetString(); //nFrage.explanation = "not yet implemented"; nFrage.Id = element.GetProperty("id").GetUInt32(); nFrage.text = element.GetProperty("text").GetString(); var kategorien = element.GetProperty("kategorien").EnumerateArray(); foreach (JsonElement katEl in kategorien) { DAOFrageKategorie daoKat = new DAOFrageKategorie(); daoKat.FID = nFrage.Id; daoKat.KID = katEl.GetUInt32(); db.Insert(daoKat); } var antworten = element.GetProperty("antworten").EnumerateArray(); foreach (JsonElement antEl in antworten) { DAOAntwort antwort = new DAOAntwort(); antwort.Id = antEl.GetProperty("id").GetUInt32(); antwort.text = antEl.GetProperty("text").GetString(); antwort.isCorrect = antEl.GetProperty("isCorrect").GetBoolean(); db.Insert(antwort); DAOFrageAntwort frAnt = new DAOFrageAntwort(); frAnt.FID = nFrage.Id; frAnt.AID = antwort.Id; db.Insert(frAnt); } db.Insert(nFrage); } foreach (JsonElement element in jsonDocKategorien.RootElement.EnumerateArray()) { DAOKategorie nKategorie = new DAOKategorie(); nKategorie.Id = element.GetProperty("id").GetUInt32(); nKategorie.title = element.GetProperty("title").GetString(); nKategorie.description = element.GetProperty("description").GetString(); db.Insert(nKategorie); } db.Close(); setFragenList(); }