/// <summary> /// Add Answer. /// </summary> /// <returns></returns> public void AddAnswer(AnswerViewModel answerentry) { try { Answer _answer = ObjectMapper.Map <AnswerViewModel, Model.Entities.Answer>(answerentry); //Add Answer _answer.Question_Id = answerentry.Question_Id; _answer.QuizEntryId = answerentry.QuizEntryId; Answer newanswer = AnswerManager.Add(_answer); int answerId = newanswer.Id; //add Answer Questions Choices if (answerentry.Answers.Count() > 0) { foreach (var item in answerentry.Answers) { AnswerQuestionChoice _answerquestion = ObjectMapper.Map <AnswerQuestionChoiceViewModel, Model.Entities.AnswerQuestionChoice>(item); _answerquestion.AnswerId = answerId; _answerquestion.QuestionChoiceId = item.QuestionChoiceId; AnswerQuestionChoiceManager.Add(_answerquestion); } } } catch (Exception ex) { ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing); } }
/// <summary> /// Get the point results for Unique questions in a quizEntry /// </summary> /// <param name="quizId">The quiz Id</param> /// <param name="quizEntryID">Teh Quiz Entry ID</param> /// <returns>Points Result for unique questions in a quizEntry</returns> private int GetResultsForUniqueQuestions(int quizId, int quizEntryID) { int result = 0; try { //AnswerQuestionChoices List <AnswerQuestionChoice> answerquestionList = AnswerQuestionChoiceManager.GetAll(); //answer List <Answer> answerList = AnswerManager.GetAnswersByQuizEntryId(quizEntryID); //Questionchoices for unique answer List <QuestionChoice> questionschoicesUniqueList = QuestionChoiceManager.GetCorrectQuestionForUnique(); //Question List <Question> questionlist = QuestionManager.GetQuestionsByQuizId(quizId); //Get the Results for UNIQUE CHOICE QUESTION result = (from Aq in answerquestionList join a in answerList on Aq.AnswerId equals a.Id join qc in questionschoicesUniqueList on Aq.QuestionChoiceId equals qc.Id join q in questionlist on a.Question_Id equals q.Id select qc).Sum(x => x.PointsValue); } catch (Exception ex) { ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing); } return(result); }
/// <summary> /// Get the point results for Multiple questions in a quizEntry /// </summary> /// <param name="quizId">The quiz Id</param> /// <param name="quizEntryID">Teh Quiz Entry ID</param> /// <returns>Points Result for Multiple questions in a quizEntry</returns> private int GetResultsForMultipleQuestions(int quizId, int quizEntryID) { int result = 0; try { //Get the ids of the multiple answer List <int> QuestionIdsMultiple = QuestionChoiceManager.GetQuestionsMultiples(quizId); //AnswerQuestionChoices List <AnswerQuestionChoice> answerquestionList = AnswerQuestionChoiceManager.GetAll(); //answer List <Answer> answerList = AnswerManager.GetAnswersByQuizEntryId(quizEntryID); //Question List <Question> questionlist = QuestionManager.GetQuestionsByQuizId(quizId); //Questionchoices List <QuestionChoice> questionschoicesList = QuestionChoiceManager.GetAll(); //Questionchoices for multiple answer List <QuestionChoice> questionschoicesMultipleList = QuestionChoiceManager.GetCorrectQuestionForMultiple(); int multipleresult = 0; //Get the Results for MULTIPLE CHOICE QUESTION foreach (var item in QuestionIdsMultiple) { //Get the answer for the student for each multiple question List <string> studentchoices = (from Aq in answerquestionList join a in answerList on Aq.AnswerId equals a.Id join qc in questionschoicesList on Aq.QuestionChoiceId equals qc.Id join q in questionlist on a.Question_Id equals q.Id where qc.Question_Id == item select qc.Id.ToString()).ToList(); //Get the correct Answer List <string> correctanswer = (from qc in questionschoicesMultipleList where qc.Question_Id == item select qc.Id.ToString()).ToList(); if (Extensions.AreEqual(studentchoices, correctanswer)) //Correct Answer { multipleresult += (from qc in questionschoicesMultipleList where qc.Question_Id == item select qc).Sum(x => x.PointsValue); } result = multipleresult; } } catch (Exception ex) { ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing); } return(result); }