public ExtendedReportDto GetExtendedReportQuizReportData(int acSessionId) { var dto = new ExtendedReportDto() { SubModuleItemType = SubModuleItemType.Quiz }; var qr = GetTestResultsByAcSessionId(acSessionId); dto.ReportResults = qr.Select(x => new ExtendedReportResultDto { Id = x.Id, ParticipantName = x.ParticipantName, Results = x.Results.Select(r => new QuestionResultDto { IsCorrect = r.IsCorrect, QuestionId = r.QuestionRef.Id }).ToList() }); if (qr.Any()) //test must be the same for all quizResults with the same acSession { dto.Name = qr.First().Test.TestName; dto.Questions = qr.First().Test.SubModuleItem.Questions; } return(dto); }
public ExtendedReportDto GetExtendedReportQuizReportData(int acSessionId, bool isLiveQuiz) { var dto = new ExtendedReportDto { SubModuleItemType = SubModuleItemType.Quiz }; var qr = GetQuizResultsByAcSessionId(acSessionId).Where(q => q.Quiz.IsPostQuiz == !isLiveQuiz); dto.ReportResults = qr.Select(x => new ExtendedReportResultDto { Id = x.Id, ParticipantName = x.ParticipantName, Results = x.Results.Select(r => new QuestionResultDto { IsCorrect = r.IsCorrect, QuestionId = r.QuestionRef.Id, Answer = String.Join(";", r.Answers.Select(a => a.Value)), DistractorIds = r.Answers.Where(a => a.QuizDistractorAnswer != null).Select(a => a.QuizDistractorAnswer.Id) }).ToList() }); if (qr.Any()) //quiz must be the same for all quizResults with the same acSession { dto.Name = qr.First().Quiz.QuizName; dto.Questions = qr.First().Quiz.SubModuleItem.Questions; } return(dto); }
public ExtendedReportDto GetExtendedReportSurveyReportData(int acSessionId) { var dto = new ExtendedReportDto() { SubModuleItemType = SubModuleItemType.Survey }; IEnumerable <SurveyResult> sr = GetSurveyResultsByAcSessionId(acSessionId); dto.ReportResults = sr.Select(x => new ExtendedReportResultDto { Id = x.Id, ParticipantName = x.ParticipantName, Results = x.Results.Select(r => new QuestionResultDto { QuestionId = r.QuestionRef.Id, Answer = String.Join(";", r.Answers.Select(a => a.Value)), DistractorIds = r.Answers.Select(a => a.SurveyDistractorAnswer.Id) // for likert there will be two types of distractors! a.SurveryDistractor }).ToList() }); if (sr.Any()) //survey must be the same for all quizResults with the same acSession { dto.Name = sr.First().Survey.SurveyName; dto.Questions = sr.First().Survey.SubModuleItem.Questions; } return(dto); }