/// <summary> /// The get survey answer lms ids. /// </summary> /// <param name="question"> /// The question. /// </param> /// <param name="answer"> /// The answer. /// </param> /// <returns> /// The <see cref="string[]"/>. /// </returns> protected string[] GetSurveyAnswerLmsIds(Question question, SurveyQuestionResultDTO answer) { var answers = answer.answers ?? new SurveyQuestionResultAnswerDTO[0]; var distractors = question.Distractors.Where(d => answers.Any(a => a.surveyDistractorAnswerId == d.Id) && d.LmsAnswerId != null); return(distractors.Select(d => d.LmsAnswerId.ToString()).ToArray()); }
private SurveyQuestionResult ConvertDto(SurveyQuestionResultDTO resultDTO, SurveyResult surveyResult) { var instance = new SurveyQuestionResult { Question = resultDTO.question, IsCorrect = resultDTO.isCorrect, QuestionType = this.QuestionTypeModel.GetOneById(resultDTO.questionTypeId).Value, SurveyResult = surveyResult, QuestionRef = this.QuestionModel.GetOneById(resultDTO.questionId).Value }; return(instance); }
private void CreateAnswers(SurveyQuestionResultDTO dto, SurveyQuestionResult result, SurveyQuestionResultAnswerModel answerModel) { foreach (var answerDTO in dto.answers) { answerDTO.surveyQuestionResultId = result.Id; if (IsValid(answerDTO, out ValidationResult distractorValidationResult)) { try { var answer = ConvertDto(answerDTO, result); answerModel.RegisterSave(answer, true); } catch (Exception ex) { Logger.ErrorFormat("Saving answers:" + ex); } } } }
/// <summary> /// The convert survey answers to quiz answers. /// </summary> /// <param name="question"> /// The question. /// </param> /// <param name="answer"> /// The answer. /// </param> /// <param name="takeDistractorId"> /// The take Distractor Id. /// </param> /// <returns> /// The <see cref="string[]"/>. /// </returns> protected string[] ConvertSurveyAnswersToQuizAnswers(Question question, SurveyQuestionResultDTO answer, bool takeDistractorId) { return(answer.answers.Where(a => takeDistractorId ? a.surveyDistractorId != null : a.value != null) .Select(a => takeDistractorId ? a.surveyDistractorId.ToString() : a.value).ToArray()); }