public void AddCategoryToDatabase(Kategorien kategorien)
        {
            DAOKategorie dAOKategorie = new DAOKategorie();
            var          db           = new SQLiteConnection(pathToDb);

            dAOKategorie.title       = kategorien.titel;
            dAOKategorie.description = kategorien.beschreibung;
            db.Insert(dAOKategorie);
        }
        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();
        }