public void SaveTestToFile(string path) { //створюємо 3 списка - список з самими питаннями, з відповідями типу вибір правильних і співставлення List <Question> listOfQuestions = new List <Question>(); List <varForChooseRightOne> listOfChoose = new List <varForChooseRightOne>(); List <varForComparison> listOfComparison = new List <varForComparison>(); for (int i = 0; i < questions.Count; i++) { listOfQuestions.Add(questions[i]); if (questions[i] is ChooseRightOne) { ChooseRightOne chooseRightOne = (ChooseRightOne)questions[i]; for (int j = 0; j < chooseRightOne.options.Count; j++) { listOfChoose.Add(chooseRightOne.options[j]); } } else { Comparison comparison = (Comparison)questions[i]; for (int j = 0; j < comparison.options.Count; j++) { listOfComparison.Add(comparison.options[j]); } } } WriteToFile(path, listOfQuestions); WriteToChooseRightFile(path, listOfChoose); WriteToComparisonFile(path, listOfComparison); }
/// <summary> /// Метод, що редагує питання типу ChooseRigthOne /// </summary> /// <param name="Index"></param> /// <param name="question"></param> /// <param name="score"></param> /// <param name="listChooseRight"></param> public void EditQuestion(int Index, string question, float score, List <varForChooseRightOne> listChooseRight) { /*RemoveQuestionFromList(Index); * ChooseRightOne choose = new ChooseRightOne(Index, question, score); * choose.AddListOptions(listChooseRight); * this.AddToTest(choose);*/ ChooseRightOne choose = new ChooseRightOne(Index, question, score); choose.AddListOptions(listChooseRight); questions[Index - 1] = new Question(); questions[Index - 1] = choose; }
/// <summary> /// Метод обробки події натиску на кнопку "Далі" /// Зберігає створене запитання, додає його до тесту, додає питання в список питань, створює нову форму введення питання /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void BtnNextQuestionClick(object sender, RoutedEventArgs args) { // MessageBox.Show("Створення нового питання"); string question = textBoxQuestion.Text; if (question == "") { MessageBox.Show("Введіть текст питання!", "Помилка", MessageBoxButton.OK, MessageBoxImage.Error); return; } float score; try { score = float.Parse(textBoxScore.Text); } catch (FormatException) { MessageBox.Show("Кількість балів за питання було введено неправильно!", "Помилка!", MessageBoxButton.OK, MessageBoxImage.Error); return; } switch (type) { case 0: ChooseRightOne choose = CreatingChooseRightOne(question, score); ourTest.AddToTest(choose); // MessageBox.Show(String.Format("ChooseRight question have been added\n" + choose.Show())); break; case 1: Comparison comparison = CreatingComparison(question, score); ourTest.AddToTest(comparison); // MessageBox.Show(String.Format("Comparison question have been added\n" + comparison.Show())); break; } ListOfQuestions(); CreatingNewQuestion(); }
/// <summary> /// Метод, що зчитує з форми варіанти відповідей (вибір правильних) /// Приймає текст питання і к-сть балів, повертає об'єкт класу ChooseRightOne /// </summary> /// <param name="question"></param> /// <param name="score"></param> /// <returns></returns> private ChooseRightOne CreatingChooseRightOne(string question, float score) { ChooseRightOne var = new ChooseRightOne(ourTest.GetNumberOfNextQuestion(), question, score); List <varForChooseRightOne> list = new List <varForChooseRightOne>(); for (int i = 0; i < numberOfOptions; i++) { bool answer; if (checkBoxes[i].IsChecked == true) { answer = true; } else { answer = false; } string answerOption = tb1[i].Text; list.Add(new varForChooseRightOne(ourTest.GetNumberOfNextQuestion(), answerOption, answer)); } var.AddListOptions(list); return(var); }
/// <summary> /// Додавання питання типу вибір правильних до тесту /// </summary> /// <param name="question"></param> public void AddToTest(ChooseRightOne question) { questions.Add(question); }
private void EditChooseRightOne() { ChooseRightOne choose = ourTest.questions[Index - 1] as ChooseRightOne; numberOfOptions = choose.options.Count; //comboBox1 selected option choose right comboBox1.SelectedItem = "Вибір правильних"; //comboBox2 selected option numberOfOptions comboBox2.SelectedItem = numberOfOptions.ToString(); //creating rows rowDefinitions = new RowDefinition[2 + numberOfOptions]; for (int i = 0; i < rowDefinitions.Length; i++) { rowDefinitions[i] = new RowDefinition(); } rowDefinitions[0].Height = new GridLength(50); //це буде к-сть балів rowDefinitions[1 + numberOfOptions].Height = new GridLength(50); //це будуть кнопки //додавання до гріду for (int i = 0; i < rowDefinitions.Length; i++) { CreateTestWindowGrid.RowDefinitions.Add(rowDefinitions[i]); } //row 1 -> text of question AddToGrid(1, 2, 2, textBlockQuestion); textBoxQuestion.Text = choose.question;//додавання тексту питання AddToGrid(1, 4, 2, textBoxQuestion); //row 2 -> score AddToGrid(2, 2, 2, textBlockScore); textBoxScore.Text = choose.score.ToString();//додавання к-сті балів за питання AddToGrid(2, 4, textBoxScore); // row 4+numberOfOptions -> buttons //here I will create new buttons btnSaveEdition.Click += btnSaveChangesClick; AddToGrid(4 + numberOfOptions, 5, btnSaveEdition); // rows with options checkBoxes = new CheckBox[numberOfOptions]; tb1 = new TextBox[numberOfOptions]; for (int i = 0; i < numberOfOptions; i++) { //checkBoxes checkBoxes[i] = new CheckBox { VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, IsChecked = choose.options[i].answer//Забиваємо значеннями true/false з варіанту відповіді }; AddToGrid(3 + i, 2, checkBoxes[i]); //tb1 tb1[i] = new TextBox { TextWrapping = TextWrapping.Wrap, Margin = new Thickness(10, 10, 20, 10), Text = choose.options[i].answerOption }; tb1[i].SpellCheck.IsEnabled = true; AddToGrid(3 + i, 3, 3, tb1[i]); } }