Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }