public IEnumerable <MultipleChoiceQuestion> Get(int courseId, int lessonId) { MultipleChoiceQuestion a = new MultipleChoiceQuestion(); List <MultipleChoiceQuestion> ql = a.questionList(courseId, lessonId); return(ql); }
public void AddMultipleChoiceQuestion(string questionText, string questionA, string questionB, string questionC, string questionD) { var mcQuestion = new MultipleChoiceQuestion(questionText, questionA, questionB, questionC, questionD); _surveyQuestions.Add(mcQuestion); }
public async Task <ActionResult> Create([Bind(Include = "QuestionId,SubjectId,TopicId,QuestionUsage,QuestionText,SampleAnswer,QuestionFormat")] Question question, [Bind(Include = "MultipleChoiceId,OptionText1,OptionText2,OptionText3,OptionText4,CorrectChoice,QuestionId")] MultipleChoice MQuestions) { if (question.SubjectId != null && question.TopicId != null && question.QuestionText != null && question.SampleAnswer != null) //instead of ModelState.isValid { bool acceptingMultiChoice = true; // if the question is a MultiChoice add the Multichoices else go back if (question.QuestionFormat == Question.QuestionType.MultipleChoice) { //this used to carry out a redirection - BUT NO MORE!!! //return RedirectToAction("Create", "MultipleChoices", new{ questionid = question.QuestionId}); if (MQuestions.OptionText1 != null && MQuestions.OptionText2 != null && MQuestions.OptionText3 != null && MQuestions.OptionText4 != null && MQuestions.CorrectChoice != 0) { MQuestions.QuestionId = question.QuestionId; db.MultipleChoices.Add(MQuestions); } else { acceptingMultiChoice = false; ViewBag.Error = "Incorrect Multiple Choice entry!!!"; } } if (acceptingMultiChoice) { db.Questions.Add(question); await db.SaveChangesAsync(); return(RedirectToAction("EditQuestions", "Examiner", new { subject = question.SubjectId })); } } else if (question.SampleAnswer == null) { ViewBag.Error = "Please enter a sample answer or choose an option"; } else { ViewBag.Error = "Incorrect Question entry!!!"; } // limiting choices of Subject to those of Examiner string TeacherId = User.Identity.GetUserId(); List <Topic> topics = new List <Topic>(from t in db.Topics where question.SubjectId == t.SubjectId select t); ViewBag.Subject = question.SubjectId; ViewBag.SubjectId = question.SubjectId; // new SelectList(question.SubjectId, "SubjectId", "SubjectName", question.SubjectId); ViewBag.TopicId = new SelectList(topics, "TopicId", "TopicName", question.TopicId); MultipleChoiceQuestion q = new MultipleChoiceQuestion(); q.question = question; q.MQuestions = MQuestions; return(View(q)); }
public void StartQuiz(List <IQuestionAble> lijst) { foreach (IQuestionAble vraag in lijst) { MultipleChoiceQuestion testType = (MultipleChoiceQuestion)vraag; Console.WriteLine("Graad:{0} Categorie:{1} \n {2}", vraag.Moeilijkheidsgraad, vraag.CategorieString, vraag.VraagString); if (testType.FalseAnswers != null) { testType.ShowAnswers(); } while (true) { if (Console.ReadLine() != vraag.Antwoord) { Console.WriteLine("---------------------- \n WRONG! Try again"); } else { Console.WriteLine("---------------------- \n CORRECT MOVE ON"); break; } } } }
public static MvcHtmlString CreateSingleRadiobutton(this HtmlHelper html, MultipleChoiceQuestion _question) { string result = String.Empty; string type = Enum.GetName(typeof(MultipleQuestionType), _question.Type).ToLower(); TagBuilder header = new TagBuilder("h3"); header.InnerHtml += _question.QuestionText; result += header.ToString(); TagBuilder hidden = new TagBuilder("input"); hidden.MergeAttribute("type", "hidden"); hidden.MergeAttribute("name", "QuestionId"); hidden.MergeAttribute("value", _question.Id.ToString()); result += hidden.ToString(); foreach (Variable var in _question.Variables) { TagBuilder input = new TagBuilder("input"); input.MergeAttribute("type", type); input.MergeAttribute("name", "Answer"); input.MergeAttribute("value", var.Text); result += input.ToString(TagRenderMode.SelfClosing) + var.Text; } return(MvcHtmlString.Create(result)); }
// GET: Questions/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Question question = await db.Questions.FindAsync(id); if (question == null) { return(HttpNotFound()); } ViewBag.SubjectId = new SelectList(db.Subjects, "SubjectId", "SubjectName", question.SubjectId); ViewBag.TopicId = new SelectList(db.Topics, "TopicId", "TopicName", question.TopicId); MultipleChoiceQuestion q = new MultipleChoiceQuestion(); q.question = question; if (question.QuestionFormat == Question.QuestionType.MultipleChoice) { q.MQuestions = db.MultipleChoices.Where(x => x.QuestionId == id).FirstOrDefault(); } return(View(q)); }
public IQuestion Build(string contents) { var questionMatch = _questionRegex.Match(contents); var num = int.Parse(questionMatch.Groups[1].Value); var text = questionMatch.Groups[2].Value.Trim(); var answers = questionMatch.Groups[3].Value; var correct = questionMatch.Groups[5].Value.Trim()[0]; var question = new MultipleChoiceQuestion(num, text); _questionExtraFactory.InsertExtras(contents, question); foreach (Match answerMatch in _answersRegex.Matches(answers)) { var option = answerMatch.Groups[1].Value.Trim()[0]; var answerText = answerMatch.Groups[2].Value.Trim(); var choice = new Choice(option, answerText); question.AddChoice(choice); if (correct == option) { question.Answer = choice; } } return(question); }
public IEnumerable <MultipleChoiceQuestion> Get(int QuestionId) { MultipleChoiceQuestion a = new MultipleChoiceQuestion(); List <MultipleChoiceQuestion> ql = a.kahoot(QuestionId); return(ql); }
/// <summary> /// Adds question this view model will be based on /// NOTE: needs to be done before attaching this view model to the page /// </summary> /// <param name="question">The question to be attached to this viewmodel</param> public void AttachQuestion(MultipleChoiceQuestion question) { // Get the question Question = question; // Convert the list of string to list of ABCAnswerItemViewModel Options = ListConvertFromStringQuestion(Question.Options); // Set the correct answer selected so it's green initially Options[Question.CorrectAnswerIndex].IsSelected = true; // If the answer is null, return (means that the user gave no answer to this question) if (UserAnswer == null) { NoAnswer = true; return; } // Set the user's answer selected so it's green Options[UserAnswer.SelectedAnswerIndex].IsSelected = true; // Mark the user's answer to display "Your answer" sign Options[UserAnswer.SelectedAnswerIndex].IsAnswerGivenByTheUser = true; // Indicate if the user's answer is correct Options[UserAnswer.SelectedAnswerIndex].IsAnswerCorrect = IsAnswerCorrect; }
public async Task ValidateQuestionAsync_NewValidQuestion_ReturnsTrueNoErrors() { var database = GetDatabase().Build(); var question = new MultipleChoiceQuestion() { Name = "NewQuestion", QuestionCategoryId = database.Context .QuestionCategories .Single(qc => qc.Name == "Category1") .Id }; database.Reload(); var modelErrors = new MockErrorCollection(); var validator = new QuestionValidator(database.Context); var result = await validator.ValidateQuestionAsync ( question, modelErrors, "Class1" ); Assert.True(result); Assert.False(modelErrors.HasErrors); }
public async Task ResolveSolvedQuestionAsync_ReturnsCachedGeneratedQuestion( bool attemptsRemaining) { var userQuestionData = CreateUserQuestionData ( attemptsRemaining, templateQuestionId: 100, cachedQuestionData: "CachedQuestionData" ); var resolvedQuestion = new MultipleChoiceQuestion(); var jsonSerializer = new Mock <IJsonSerializer>(); jsonSerializer .Setup(m => m.Deserialize <Question>("SubmissionCachedQuestionData")) .Returns(resolvedQuestion); var resolver = new GeneratedQuestionTemplateResolver ( userQuestionData, jsonSerializer.Object ); var result = await resolver.ResolveSolvedQuestionAsync ( CreateUserQuestionSubmission("SubmissionCachedQuestionData") ); Assert.Equal(resolvedQuestion, result); Assert.Equal(100, result.Id); }
public async Task <IActionResult> PostMultipleChoiceQuestion([FromBody] MultipleChoiceQuestion multipleChoiceQuestion) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.MultipleChoiceQuestions.Add(multipleChoiceQuestion); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (MultipleChoiceQuestionExists(multipleChoiceQuestion.Id)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } return(CreatedAtAction("GetMultipleChoiceQuestion", new { id = multipleChoiceQuestion.Id }, multipleChoiceQuestion)); }
public List <TestQuestion> GetList() { List <TestQuestion> tlist = null; using (StreamReader sr = new StreamReader(System.IO.Path.Combine(AppDomain.CurrentDomain.GetData("DataDirectory").ToString(), "Midterm.json"))) { string filedata = sr.ReadToEnd(); tlist = JsonConvert.DeserializeObject <List <TestQuestion> >(filedata); List <TestQuestion> temp = new List <TestQuestion>(); foreach (TestQuestion quest in tlist) { if (quest.type == "MultipleChoiceQuestion") { TestQuestion q = new MultipleChoiceQuestion(); q.id = quest.id; q.question = quest.question; q.choices = quest.choices; q.type = quest.type; q.answer = quest.answer; temp.Add(q); } else if (quest.type == "LongAnswerQuestion") { TestQuestion q = new LongQuestion(); q.id = quest.id; q.question = quest.question; q.choices = quest.choices; q.type = quest.type; q.answer = quest.answer; temp.Add(q); } else if (quest.type == "ShortAnswerQuestion") { TestQuestion q = new ShortQuestion(); q.id = quest.id; q.question = quest.question; q.choices = quest.choices; q.type = quest.type; q.answer = quest.answer; temp.Add(q); } else if (quest.type == "TrueFalseQuestion") { TestQuestion q = new TrueFalseQuestion(); q.id = quest.id; q.question = quest.question; q.choices = quest.choices; q.type = quest.type; q.answer = quest.answer; temp.Add(q); } } tlist = temp; } if (tlist == null) { tlist = new List <TestQuestion>(); } return(tlist); }
public async Task <IActionResult> AddMultipleChoiceQuestion(long id, [Bind("Id,Topic,Questions")] TestCreationViewModel model) { SaveTest(TestCreationTransformer.TransformToTest(model)); var newQuestion = new MultipleChoiceQuestion { TestId = Consts.backUpTestId, Position = _context.Questions.Where(x => x.TestId == Consts.backUpTestId).Count(), Points = 1 }; _context.Add(newQuestion); await _context.SaveChangesAsync(); newQuestion = _context.Questions.FirstOrDefault(x => x.Id == newQuestion.Id) as MultipleChoiceQuestion; _context.Add(new Choice { QuestionId = newQuestion.Id }); _context.Add(new Choice { QuestionId = newQuestion.Id }); await _context.SaveChangesAsync(); return(RedirectToAction("Edit", "TestCreation", new { id }, newQuestion.Id.ToString())); }
/// <summary> /// Creates a multiple choice question. /// </summary> /// <param name="number">Question number</param> /// <param name="question">Question</param> /// <param name="answers">Answers to question (as a string)</param> /// <param name="correct">Correct answers (as a string)</param> /// <returns>Created <seealso cref="MultipleChoiceQuestion"/> instance</returns> public static MultipleChoiceQuestion Build(int number, string question, IEnumerable <string> answers, IEnumerable <string> correct) { var multipleChoice = new MultipleChoiceQuestion(number, question.Trim()) { Id = number }; var i = 0; foreach (var answer in answers) { var choice = new Choice(answer); multipleChoice.AddChoice(choice); if (correct.Contains(answer)) { multipleChoice.AddAnswer(choice); } i++; } if (multipleChoice.Answer == null) { Logger.Log(Logger.Type.Error, $"Could not find answer to '{question}'"); } return(multipleChoice); }
public static MultipleChoiceQuestionDTO MapFrom(this MultipleChoiceQuestion entity) { if (entity == null) { throw new Exception(ExceptionMessages.EntityNotFound); } var answer = new List <string>(); foreach (var item in entity.Answers) { answer.Add(item.Answer); } return(new MultipleChoiceQuestionDTO { Id = entity.Id, Description = entity.Description, IsRequired = entity.IsRequired, IsMultipleAnswer = entity.IsMultipleAnswer, Options = entity.Options.MapFrom(), QuestionNumber = entity.QuestionNumber, Answers = answer }); }
public void Split_Multi_Value_Answers_To_List_4() { var multi = new MultipleChoiceQuestion(); List <Answer> list = new List <Answer>(); list.Add(new Answer { Value = "Bullar" }); list.Add(new Answer { }); var valueList = new List <string>(); valueList.Add("Godis"); valueList.Add("Glass"); valueList.Add("Kakor"); valueList.Add("Bullar"); var result = multi.SplitWordsInAnswers(list); var expected = new List <string>(); expected.Add("Bullar"); Assert.AreEqual(expected.Count, result.Count); for (int i = 0; i < expected.Count; i++) { Assert.AreEqual(expected[i], result[i]); } }
public async Task GradeSubmissionAsync_OneCorrectAnswer_CorrectSubmission() { var question = new MultipleChoiceQuestion() { AllowMultipleCorrectAnswers = true, Choices = Collections.CreateList ( new MultipleChoiceQuestionChoice() { Value = "A", Correct = true }, new MultipleChoiceQuestionChoice() { Value = "B", Correct = false }, new MultipleChoiceQuestionChoice() { Value = "C", Correct = false }, new MultipleChoiceQuestionChoice() { Value = "D", Correct = false } ) }; var submission = new MultipleChoiceQuestionSubmission() { SelectedChoices = Collections.CreateList("A") }; var grader = new MultipleChoiceQuestionGrader(question); var result = await grader.GradeSubmissionAsync(submission); Assert.True(((MultipleChoiceQuestionResult)result.Result).Correct); Assert.Equal(1.0, result.Score); }
//Constructor voor het wijzigen van een vraag public AddQuestionDialog(QuestionsView qv, MultipleChoiceQuestion question, int questionIndex) : this(qv) { QuestionIndex = questionIndex; Question = question; Text = btnAddQuestion.Text = "Vraag Wijzigen"; UpdateView = true; }
public async void NoOptionsShouldThrowError() { var questionnaire = _dbMock.Object.Questionnaires.First(q => q.Id == 1); var question = new MultipleChoiceQuestion("test", questionnaire); await Assert.ThrowsAsync <InvalidDataException>(() => _questionnaireService.AddQuestion(questionnaire.Id, question)); }
public MultipleChoiceQuestionViewModel(MultipleChoiceQuestion question, IQuestionRepository questionRepository) : base(question) { _questionRepository = questionRepository; _question = question; Options = new ObservableCollection <MultipleChoiceQuestionOption>(); AddOption(); AddOptionCommand = new RelayCommand(AddOption, CanAddRow); }
static void Main(string[] args) { string filePath = @"E:\Git_Repositories\External-Quiz\Elements.xml"; XmlDocument doc = new XmlDocument(); doc.Load(filePath); XmlNodeList nodeList = doc.SelectNodes("/QuizElement"); XmlNodeList childNodes = nodeList[0].ChildNodes; XmlNode yesNoElement1 = childNodes[0]; XmlNode yesNoElement2 = childNodes[1]; XmlNode freetextElement1 = childNodes[2]; XmlNode guessElement1 = childNodes[3]; XmlNode multipleChoiceElemement1 = childNodes[4]; string yesNoQuestion1 = yesNoElement1.Attributes[0].Value; bool yesNoBool1 = bool.Parse(yesNoElement1.Attributes[1].Value); string yesNoQuestion2 = yesNoElement2.Attributes[0].Value; bool yesNoBool2 = bool.Parse(yesNoElement2.Attributes[1].Value); string freetextQuestion1 = freetextElement1.Attributes[0].Value; string solutionWord1 = freetextElement1.Attributes[1].Value; string guessQuestion1 = guessElement1.Attributes[0].Value; int correctAmount1 = Int32.Parse(guessElement1.Attributes[1].Value); int tolerance1 = Int32.Parse(guessElement1.Attributes[2].Value); string multipleChoiceQuestion1 = multipleChoiceElemement1.Attributes[0].Value; string multipleChoiceAnswer1 = multipleChoiceElemement1.ChildNodes[0].InnerText; string multipleChoiceAnswer2 = multipleChoiceElemement1.ChildNodes[1].InnerText; string multipleChoiceAnswer3 = multipleChoiceElemement1.ChildNodes[2].InnerText; List <string> multipleChoiceAnswers = new List <string>(); multipleChoiceAnswers.Add(multipleChoiceAnswer1); multipleChoiceAnswers.Add(multipleChoiceAnswer2); multipleChoiceAnswers.Add(multipleChoiceAnswer3); bool multipleChoiceBool1 = bool.Parse(multipleChoiceElemement1.ChildNodes[0].Attributes[0].Value); bool multipleChoiceBool2 = bool.Parse(multipleChoiceElemement1.ChildNodes[1].Attributes[0].Value); bool multipleChoiceBool3 = bool.Parse(multipleChoiceElemement1.ChildNodes[2].Attributes[0].Value); List <bool> multipleChoiceBooleans = new List <bool>(); multipleChoiceBooleans.Add(multipleChoiceBool1); multipleChoiceBooleans.Add(multipleChoiceBool2); multipleChoiceBooleans.Add(multipleChoiceBool3); YesNoQuestion question1 = new YesNoQuestion(yesNoQuestion1, yesNoBool1); YesNoQuestion question2 = new YesNoQuestion(yesNoQuestion2, yesNoBool2); FreetextQuestion question3 = new FreetextQuestion(freetextQuestion1, solutionWord1); GuessQuestion question4 = new GuessQuestion(guessQuestion1, correctAmount1, tolerance1); MultipleChoiceQuestion question5 = new MultipleChoiceQuestion(multipleChoiceQuestion1, multipleChoiceAnswers, multipleChoiceBooleans); List <QuizElement> list = new List <QuizElement>(); list.Add(question1); list.Add(question2); list.Add(question3); list.Add(question4); list.Add(question5); QuizGame game = new QuizGame(list); game.GameLoop(game); }
private static string CreateHiddenMultipleQuestionID(MultipleChoiceQuestion _question) { TagBuilder hidden = new TagBuilder("input"); hidden.MergeAttribute("type", "hidden"); hidden.MergeAttribute("name", "MultipleAnswers[" + MultipleQuestionUniqueId + "].QuestionId"); hidden.MergeAttribute("value", _question.Id.ToString()); return(hidden.ToString()); }
public async Task <ActionResult> Edit([Bind(Include = "QuestionId,SubjectId,TopicId,QuestionUsage,QuestionText,SampleAnswer,QuestionFormat")] Question question, [Bind(Include = "MultipleChoiceId,OptionText1,OptionText2,OptionText3,OptionText4,CorrectChoice,QuestionId")] MultipleChoice MQuestions) { if (question.SubjectId != null && question.TopicId != null && question.QuestionText != null && question.SampleAnswer != null) //instead of ModelState.IsValid { bool acceptingMultiChoice = true; //await db.SaveChangesAsync(); if (question.QuestionFormat == Question.QuestionType.MultipleChoice) { //int multiplechoiceid = (from m in db.MultipleChoices where m.QuestionId == question.QuestionId select m.MultipleChoiceId).FirstOrDefault(); //return RedirectToAction("Edit", "MultipleChoices", new { id = multiplechoiceid }); //editing the multiple choice questions if (MQuestions.OptionText1 != null && MQuestions.OptionText2 != null && MQuestions.OptionText3 != null && MQuestions.OptionText4 != null && MQuestions.CorrectChoice != 0) { MQuestions.QuestionId = question.QuestionId; MQuestions.MultipleChoiceId = db.MultipleChoices.AsNoTracking().Where(x => x.QuestionId == question.QuestionId).FirstOrDefault().MultipleChoiceId; db.Entry(MQuestions).State = EntityState.Modified; } else { acceptingMultiChoice = false; ViewBag.Error = "Incorrect Multiple Choice entry!!!"; } } if (acceptingMultiChoice) { db.Entry(question).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("EditQuestions", "Examiner", new { subject = question.SubjectId })); } } else { ViewBag.Error = "Incorrect Question entry!!!"; } ViewBag.SubjectId = new SelectList(db.Subjects, "SubjectId", "SubjectName", question.SubjectId); ViewBag.TopicId = new SelectList(db.Topics, "TopicId", "TopicName", question.TopicId); MultipleChoiceQuestion q = new MultipleChoiceQuestion(); q.question = question; if (question.QuestionFormat == Question.QuestionType.MultipleChoice) { q.MQuestions = MQuestions; } return(View(q)); }
public void GenerateTestQuestion() { currQuestion = new MultipleChoiceQuestion(); currQuestion.choices.Add(new Choice("Double Negation", "~(~p)")); currQuestion.choices.Add(new Choice("Identiy Law", "p v ~ t == p")); currQuestion.choices.Add(new Choice("De Morgan's Law", "~(p ^ q) == ~p v ~q")); currQuestion.choices.Add(new Choice("Commtative law", "p ^ q == q ^ p")); currQuestion.choices.Add(new Choice("Distribution law", "x ^ (y v z) == (x ^ y) v (x ^ z)")); }
public void CreatingTestFromScratch_AddingQuestion_CorrectQuestion() { var Builder = new TestBuilder(); var q = new MultipleChoiceQuestion() { Scoring = new Scoring(ScoringMode.EvenParts, 10), }; Builder.AddQuestion(q); }
public void Post([FromBody] MultipleChoiceQuestion mcq) { try { mcq.insert(); } catch (Exception ex) { throw new Exception("Error in insert" + ex); } }
public static MultipleChoiceQuestion GetQuestion() { if (questionList != null && questionList.questions != null && currentQuestionIndex < questionList.questions.Length) { MultipleChoiceQuestion question = questionList.questions [currentQuestionIndex]; currentQuestionIndex++; return(question); } return(null); }
public void Put([FromBody] MultipleChoiceQuestion q) { try { q.UpdateMultipleQuestion(); } catch (Exception ex) { throw new Exception("Error in update multiQ" + ex); } }
private bool IsCorrect(MultipleChoiceQuestion question) { var TaskIsCorrect = question.Task == Task; var OptionsAreCorrect = question.Options == Options; var CorrectAnswerIsCorrect = question.CorrectAnswerIndex == CorrectAnswerIndex; var ScoringIsCorrect = question.Scoring == Scoring; var ifCorrect = TaskIsCorrect && OptionsAreCorrect && CorrectAnswerIsCorrect && ScoringIsCorrect; return(ifCorrect); }
public TestQuestion Get(int id) { TestQuestion question = null; string Qtype; //List<TestQuestion> questlist = new List<TestQuestion>(); using (SqlConnection connection = new SqlConnection(GetConnectionString())) { using (SqlCommand command = new SqlCommand("QuestGet", connection)) { command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.AddWithValue("@ID", id); connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { if (reader.Read()) { Qtype = (string)reader["QType"]; if (Qtype == "TrueFalseQuestion") { question = new TrueFalseQuestion(); question.ID = (int)reader["ID"]; question.Question = (string)reader["Question"]; //questlist.Append(question); } else if (Qtype == "ShortAnswerQuestion") { question = new ShortQuestion(); question.ID = (int)reader["ID"]; question.Question = (string)reader["Question"]; //questlist.Append(question); } else if (Qtype == "LongAnswerQuesiton") { question = new LongQuestion(); question.ID = (int)reader["ID"]; question.Question = (string)reader["Question"]; //questlist.Append(question); } else if (Qtype == "MultipleChoiceQuestion") { question = new MultipleChoiceQuestion(); question.ID = (int)reader["ID"]; question.Question = (string)reader["Question"]; //question.Choice = (string[])reader["Choice"]; //questlist.Append(question); } } } } } return(question); }
public Answer GetAnswer(Question question) { return(question switch { NumericQuestion _ => new NumericAnswer(), RatingQuestion _ => new NumericAnswer(), MultipleChoiceQuestion _ => new MultipleChoiceAnswer(), StringQuestion _ => new StringAnswer(), DrawQuestion _ => new FileAnswer(), UploadPictureQuestion _ => new FileAnswer(), _ => throw new Exception() });
//Geef gegenereerde vraag door aan het model public void AddDialogInformation(MultipleChoiceQuestion question, bool updateTV) { //Voeg vraag toe aan lijst met vragen in Model if (AddQuestionnaireController != null) { AddQuestionnaireController.Model.Questionnaire.Questions.Add(question); } if (QuestionnaireDetailController != null) { QuestionnaireDetailController.Model.Questionnaire.Questions.Add(question); } //Bepaal of TreeView geupdatet moet worden if (updateTV) { UpdateTreeView(); } }
//Functie voor afhandeling van klik op 'Vraag Toevoegen' private void btnAddQuestion_Click(object sender, EventArgs e) { answers = new List<Answer>(); if (!UpdateView) { Question = new MultipleChoiceQuestion(addQuestionView1.tbQuestion.Text); } //Loop voor alle ingevoerde antwoorden foreach (var item in addQuestionView1.clbAnswers.Items) { Answer ans = (Answer) item; if (!UpdateView || Question.GetAnswer(item.ToString()) == null) { //Maak een antwoordobject aan ans = new Answer(item.ToString()); //Voeg het antwoord toe aan de lijst met antwoorden answers.Add(ans); ans.ID = -1; } } //Voeg antwoorden toe aan het vraagobject Question.AddAnswerOptions(answers); foreach (var item in addQuestionView1.clbAnswers.Items) { //Controleer of het antwoord het correcte antwoord is if (addQuestionView1.clbAnswers.CheckedItems.Contains(item)) { //Stel het correcte antwoord gelijk aan het huidge antwoord in de loop correct = Question.GetAnswer(item.ToString()); } } //Voeg correct antwoord toe aan het vraagobject Question.CorrectAnswer = correct; //MessageBox.Show("CorrectAnswer: " + Question.CorrectAnswer.Description); //Voeg tijdsrestrictie toe aan vraag if (addQuestionView1.rbLimit.Checked) { try { int seconds = int.Parse(addQuestionView1.tbSeconds.Text); Question.TimeRestriction = new TimeSpan(0, 0, seconds); } catch (FormatException) { Question.TimeRestriction = TimeSpan.Zero; } } else { Question.TimeRestriction = TimeSpan.Zero; } //Controleer of QuestionIndex 0 is if (QuestionIndex != 0) { //Nee, de Question index moet gelijk zijn aan de meegegeven index Question.QuestionIndex = QuestionIndex; } else { //Ja, er wordt een nieuwe index gegenereerd //Question.QuestionIndex = QuestionsView.Questionnaire.Questions.Count + 1; if (QuestionsView.ParentController is AddQuestionnaireController) { Question.QuestionIndex = ((AddQuestionnaireController) QuestionsView.ParentController).Model.Questionnaire.Questions .Count + 1; } else { Question.QuestionIndex = ((QuestionnaireDetailController)QuestionsView.ParentController).Model.Questionnaire.Questions .Count + 1; } } //Sluit het dialoog Close(); }