コード例 #1
0
 private void SaveFrageStatus(FrageViewModel frage)
 {
     saveDatabase.InsertOrReplace(new SaveDataViewModel {
         Id = frage.Id, Status = frage.Status
     });
 }
コード例 #2
0
        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();
                }
            }
        }