private void loadNextQuestion() { randomNumbers(); currentQuestion = Fragenkatalog.katalog[counter - 1]; labelQuestion.Text = currentQuestion.getText().ToString(); buttonAnswerA.Text = currentQuestion.getAntwort()[randomNumberListOfAnswers[0]].getText(); buttonAnswerB.Text = currentQuestion.getAntwort()[randomNumberListOfAnswers[1]].getText(); buttonAnswerC.Text = currentQuestion.getAntwort()[randomNumberListOfAnswers[2]].getText(); buttonAnswerD.Text = currentQuestion.getAntwort()[randomNumberListOfAnswers[3]].getText(); }
private void buttonSaveQuestionClicked(object sender, EventArgs e) { //Prüft ob alle Felder gefüllt sind if (entryQuestion.Text != null && !entryQuestion.Text.Trim().Equals("") && pickerCategory.SelectedItem != null && entryRightAnwser.Text != null && !entryRightAnwser.Text.Trim().Equals("") && entryWrongAnwser_1.Text != null && !entryWrongAnwser_1.Text.Trim().Equals("") && entryWrongAnwser_2.Text != null && !entryWrongAnwser_2.Text.Trim().Equals("") && entryWrongAnwser_3.Text != null && !entryWrongAnwser_3.Text.Trim().Equals("")) { if (entryQuestion.Text.Length <= 128 && entryRightAnwser.Text.Length <= 128 && entryWrongAnwser_1.Text.Length <= 128 && entryWrongAnwser_2.Text.Length <= 128 && entryWrongAnwser_3.Text.Length <= 128) { Fragen question = new Fragen(); Antworten a1 = new Antworten(); Antworten a2 = new Antworten(); Antworten a3 = new Antworten(); Antworten a4 = new Antworten(); question.setText(entryQuestion.Text); a1.setText(entryRightAnwser.Text); a1.setStatus(true); question.setAntworten(a1); a2.setText(entryWrongAnwser_1.Text); a2.setStatus(false); question.setAntworten(a2); a3.setText(entryWrongAnwser_2.Text); a3.setStatus(false); question.setAntworten(a3); a4.setText(entryWrongAnwser_3.Text); a4.setStatus(false); question.setAntworten(a4); foreach (Kategorien k in Kategorien.kategorien) { if (k.titel.Equals(pickerCategory.SelectedItem)) { question.setKategorie(k); } } Model.Database.SQLiteHelper db = new Model.Database.SQLiteHelper(); db.AddFrageToDatabase(question); Navigation.PushAsync(new MainPage()); } else { DisplayAlert("Achtung", "Sie dürfen nicht mehr als 127 Zeichen benutzten!", "Okay"); } } else { DisplayAlert("Achtung", "Sie müssen alle Felder mit Werten füllen, wenn Sie speichern wollen!", "Okay"); } }
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 static Collection <Fragen> getAllFragen() { Collection <Fragen> fragen = new Collection <Fragen>(); var db = new SQLiteConnection(pathToDb); var tableOfFragen = db.Table <DAOFrage>(); var tableOfAntworten = db.Table <DAOAntwort>(); var tableOfFrageAntwort = db.Table <DAOFrageAntwort>(); var tableOfFrageKategorie = db.Table <DAOFrageKategorie>(); var tableOfKategorien = db.Table <DAOKategorie>(); foreach (DAOFrage daoFrage in tableOfFragen) { Fragen newFrage = new Fragen(); //set id erstmal ausgelassen newFrage.setText(daoFrage.text); newFrage.setErklärung(daoFrage.explanation); newFrage.setId(daoFrage.Id); //add Antwort foreach (DAOAntwort daoAntwort in tableOfAntworten) { foreach (DAOFrageAntwort fa in tableOfFrageAntwort) { if (fa.FID == daoFrage.Id && fa.AID == daoAntwort.Id) { Antworten newAntwort = new Antworten(daoAntwort.text, daoAntwort.isCorrect); newFrage.setAntworten(newAntwort); } if (fa.id > DAOFrageAntwort.lastId) { DAOFrageAntwort.lastId = fa.id; } } if (daoAntwort.Id > DAOAntwort.lastId) { DAOAntwort.lastId = daoAntwort.Id; } } //add Kategorie foreach (DAOKategorie daoKategorie in tableOfKategorien) { foreach (DAOFrageKategorie fk in tableOfFrageKategorie) { if (fk.FID == daoFrage.Id && fk.KID == daoKategorie.Id) { Kategorien newKategorie = new Kategorien(daoKategorie.title, daoKategorie.description); newFrage.setKategorie(newKategorie); } if (fk.id > DAOFrageKategorie.lastId) { DAOFrageKategorie.lastId = fk.id; } } if (daoKategorie.Id > DAOKategorie.lastId) { DAOKategorie.lastId = daoKategorie.Id; } } if (newFrage.getId() > DAOFrage.lastId) { DAOFrage.lastId = newFrage.getId(); } fragen.Add(newFrage); } return(fragen); }
private void NextQuestion() { if (Aufloesung) { List <AntwortViewModel> selectedAntworten = Frage.Antworten.Where(x => x.Status == AntwortStatus.Selected).ToList(); if (selectedAntworten.Count() == Frage.RichtigeAnzahl) { selectedAntworten.ForEach(x => { if (x.Richtig) { x.Status = AntwortStatus.Right; } else { x.Status = AntwortStatus.Wrong; } }); if (selectedAntworten.TrueForAll(x => x.Status == AntwortStatus.Right)) { ButtonColor = (Color)App.Current.Resources["RightColor"]; if (DatabaseViewModel.Instance.IsWiederholung) { if (Frage.Status != FrageStatus.Bearbeitet) { Frage.Status = FrageStatus.Bearbeitet; } else { Frage.Status = FrageStatus.Richtig; } } else { Frage.Status = FrageStatus.Richtig; } } else { ButtonColor = (Color)App.Current.Resources["WrongColor"]; Frage.Status = FrageStatus.Falsch; } Aufloesung = false; Frage.Antworten.Where(x => x.Richtig).ToList().ForEach(x => x.Status = AntwortStatus.Right); } } else { if (Frage != null) { Frage.Antworten.ToList().ForEach(x => x.Status = AntwortStatus.NotSelected); } List <FrageViewModel> zubearbeitendeFragen = Fragen.Where(x => x.Status != FrageStatus.Richtig).ToList(); if (zubearbeitendeFragen.Any()) { FrageViewModel frageTemp = zubearbeitendeFragen[new Random().Next(0, zubearbeitendeFragen.Count)]; List <AntwortViewModel> antwortenTemp = frageTemp.Antworten.ToList(); frageTemp.Antworten.Clear(); foreach (AntwortViewModel antwortTemp in RandomizeAntworten(antwortenTemp)) { frageTemp.Antworten.Add(antwortTemp); } Frage = frageTemp; Aufloesung = true; SetIsSolveabel(); SetSelectCounter(); } else { Beenden(); } } }
private void Fragen_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { Fragen.Last().PropertyChanged += PruefungViewModel_PropertyChanged; }