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);
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #6
0
        // 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));
        }
Example #7
0
        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;
        }
Example #10
0
        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);
        }
Example #11
0
        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));
        }
Example #13
0
        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()));
        }
Example #15
0
        /// <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
            });
        }
Example #17
0
        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);
		}
Example #19
0
 //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));
        }
Example #21
0
 public MultipleChoiceQuestionViewModel(MultipleChoiceQuestion question, IQuestionRepository questionRepository) : base(question)
 {
     _questionRepository = questionRepository;
     _question           = question;
     Options             = new ObservableCollection <MultipleChoiceQuestionOption>();
     AddOption();
     AddOptionCommand = new RelayCommand(AddOption, CanAddRow);
 }
Example #22
0
        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());
        }
Example #24
0
        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));
        }
Example #25
0
    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)"));
    }
Example #26
0
        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);
     }
 }
Example #28
0
    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);
        }
Example #32
0
 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()
     });
Example #33
0
        //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();
            }
        }
Example #34
0
        //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();
        }