private void AddQuestionButton_Click(object sender, RoutedEventArgs e)
        {
            if (QuestionNameTextBox.Text.Equals(string.Empty))
            {
                return;
            }

            actualAnswers.RemoveAll(x => x.Name == null);

            if (actualAnswers.Count == 0)
            {
                return;
            }

            if (editMode)
            {
                editMode = false;

                var questionItem = questionItems.Find(x => x.ID == actualQuestionID);
                var question     = new Question(questionItem.ID, QuestionNameTextBox.Text, new List <Answer>(actualAnswers));
                QuestionManager.SetQuestion(question);
                InitQuestionItems();
            }
            else
            {
                actualAnswersID = 0;

                var question = new Question(questionsID, QuestionNameTextBox.Text, new List <Answer>(actualAnswers));
                QuestionManager.AddQuestion(question);

                var questionItem = new QuestionItem(question);
                QuestionListStackPanel.Children.Add(questionItem);
                questionItems.Add(questionItem);

                questionsID++;
            }

            QuestionNameTextBox.Text = string.Empty;
            AnswersStackPanel.Children.Clear();
            actualAnswers.Clear();

            ChangeAddOrEditQuestionIcon();

            SaveQuestions();
        }
Beispiel #2
0
        public static void ReadFile(string fileName, ref Snackbar errorSnackbar)
        {
            Mouse.OverrideCursor = Cursors.Wait;

            QuestionManager.ClearQuestions();

            using (var reader = new StreamReader(fileName))
            {
                try
                {
                    dynamic json = JsonConvert.DeserializeObject(reader.ReadToEnd());

                    for (int i = 0; i < json.Count; i++)
                    {
                        string question = json[i].Name;
                        var    answers  = new List <Answer>();

                        for (int j = 0; j < json[i].Answers.Count; j++)
                        {
                            string answer = json[i].Answers[j].Name;
                            bool   right  = json[i].Answers[j].Right;
                            answers.Add(new Answer(j, answer, right));
                        }

                        QuestionManager.AddQuestion(new Question(i, question, answers));

                        ((QuestionsContent)TabManager.GetTab("Questions").Content).AddNewQuestion();
                        ((SettingsContent)TabManager.GetTab("Settings").Content).UpdateQuestionItems(fileName);
                    }
                }
                catch (Exception)
                {
                    errorSnackbar.MessageQueue.Enqueue("Can't read file.", null, null, null, false, true, TimeSpan.FromSeconds(4));
                }
            }

            Mouse.OverrideCursor = Cursors.Arrow;
        }