Exemplo n.º 1
0
        public ActionResult PrintFromPreview(int candidateId, int testSuiteId)
        {
            var candidate = _userService.GetUserById(candidateId);
            var candidateInfoBusinessModel = _userService.GetCandidateInfo(candidate);
            var candidateInfo = _mappingService.Map <CandidateInfoBusinessModel, CandidateInfoViewModel>(candidateInfoBusinessModel);

            var       viewerEmailId   = User.Identity.Name;
            var       viewer          = _containerUserService.FindUserByEmail(viewerEmailId);
            TestSuite testSuitDetails = _testSuiteService.GetTestSuitById(testSuiteId);
            var       previewTest     = new PreviewTestBusinessModel {
                TestSuite = testSuitDetails, ViewerId = viewer.ID, CandidateId = candidateId
            };

            _testSuiteService.GetPreview(previewTest);
            var questions      = _testSuiteService.GetUserTestDetailsByViewerIdForPrint(previewTest);
            var questionsModel = _mappingService.Map <List <TestDetailsBusinessModel>, List <TestDetailsViewModel> >(questions);
            var exportModel    = new ExportQuestionsViewModel
            {
                CandidateInfo = candidateInfo,
                Objective     = questionsModel.Where(q => q.QuestionType == ((int)QuestionType.Objective)).ToList(),
                Practical     = questionsModel.Where(q => q.QuestionType == ((int)QuestionType.Practical)).ToList()
            };

            return(View("Export", exportModel));
        }
Exemplo n.º 2
0
        public List <TestDetailsBusinessModel> GetUserTestDetailsByViewerIdForPrint(PreviewTestBusinessModel previewTest)
        {
            List <int> allquestionsForPreview = GetQuestionsForPreview(previewTest);
            var        result = (from b in _context.Query <Question>()
                                 where allquestionsForPreview.Contains(b.Id)
                                 select new TestDetailsBusinessModel
            {
                QuestionId = b.Id,
                Marks = b.Marks,
                QuestionType = b.QuestionType,
                AnswerType = b.AnswerType,
                QuestionDescription = b.QuestionDescription,
                OptionCount = b.OptionCount,
                Option1 = b.Option1,
                Option2 = b.Option2,
                Option3 = b.Option3,
                Option4 = b.Option4,
                Option5 = b.Option5,
                Option6 = b.Option6,
                Option7 = b.Option7,
                Option8 = b.Option8
            }).ToList();

            return(result);
        }
Exemplo n.º 3
0
        public ActionResult ViewQuestion(int TestSuitId)
        {
            int count = 0;
            TestSuiteViewQuesModel   testSuiteViewQuesModel = new Models.TestSuiteViewQuesModel();
            List <TestSuiteQuestion> testSuiteQuestionList  = new List <Models.TestSuiteQuestion>();

            try
            {
                TestSuite testSuitDetails = _testSuiteService.GetTestSuitById(TestSuitId);
                var       previewTest     = new PreviewTestBusinessModel {
                    TestSuite = testSuitDetails
                };
                if (testSuitDetails != null && testSuitDetails.Status == Convert.ToInt32(TestSuiteStatus.Ready))
                {
                    var questionList = _testSuiteService.GetPreview(previewTest);
                    foreach (var pQuestion in questionList)
                    {
                        count++;
                        testSuiteQuestionList.Add(new TestSuiteQuestion()
                        {
                            QuestionType        = pQuestion.QuestionType,
                            QuestionNumber      = count,
                            QuestionDescription = pQuestion.QuestionDescription,
                            OptionCount         = pQuestion.OptionCount,
                            Answer        = pQuestion.Answer,
                            CorrectAnswer = pQuestion.CorrectAnswer,
                            Id            = pQuestion.Id,
                            Marks         = pQuestion.Marks,
                            Option1       = pQuestion.Option1,
                            Option2       = pQuestion.Option2,
                            Option3       = pQuestion.Option3,
                            Option4       = pQuestion.Option4,
                            Option5       = pQuestion.Option5,
                            Option6       = pQuestion.Option6,
                            Option7       = pQuestion.Option7,
                            Option8       = pQuestion.Option8,
                        });
                    }

                    testSuiteViewQuesModel.TestSuiteQuestion = testSuiteQuestionList;
                    testSuiteViewQuesModel.TestSuiteName     = testSuitDetails.TestSuiteName;
                    testSuiteViewQuesModel.Duration          = testSuitDetails.Duration;
                    testSuiteViewQuesModel.ObjectiveCount    = questionList.Where(x => x.QuestionType == 1).ToList().Count;
                    testSuiteViewQuesModel.PracticalCount    = questionList.Where(x => x.QuestionType == 2).ToList().Count;
                }
                else
                {
                    testSuiteViewQuesModel.ErrorMessage = "Test suite is not ready.";
                }
            }
            catch
            {
                testSuiteViewQuesModel.ErrorMessage = "Something went wrong! Please try later.";
            }

            return(View(testSuiteViewQuesModel));
        }
Exemplo n.º 4
0
        public TestDetailsBusinessModel GetTestDetailsByTestSuit(PreviewTestBusinessModel previewTest, int?questionNumber, int questionType)
        {
            List <int> allquestionsForPreview = GetQuestionsForPreviewTestSuite(previewTest);
            var        questionNumberList     = FilterQuestionsByType(allquestionsForPreview, (QuestionType)questionType);

            questionNumber = questionNumber == null && questionNumberList.Count > 0 ? questionNumberList.ElementAtOrDefault(0) : questionNumber;
            if (questionNumber == null)
            {
                return(null);
            }
            var index = questionNumberList.IndexOf((int)questionNumber);
            int?previousQuestionId = questionNumberList.ElementAtOrDefault(index - 1);
            int?nextQuestionId     = questionNumberList.ElementAtOrDefault(index + 1);
            var result             = (from b in _context.Query <Question>()
                                      where b.Id == questionNumber
                                      select new TestDetailsBusinessModel
            {
                QuestionId = b.Id,
                Marks = b.Marks,
                QuestionType = b.QuestionType,
                AnswerType = b.AnswerType,
                QuestionDescription = b.QuestionDescription,
                OptionCount = b.OptionCount,
                Option1 = b.Option1,
                Option2 = b.Option2,
                Option3 = b.Option3,
                Option4 = b.Option4,
                Option5 = b.Option5,
                Option6 = b.Option6,
                Option7 = b.Option7,
                Option8 = b.Option8,
                DisplayQuestionNumber = index + 1
            }).FirstOrDefault();

            if (result == null)
            {
                return(null);
            }
            result.PreviousQuestionId = index <= 0 ? null : previousQuestionId;
            result.NextQuestionId     = index >= questionNumberList.Count - 1 ? null : nextQuestionId;
            if (questionType == (int)QuestionType.Practical && result.PreviousQuestionId == null)
            {
                List <int> objectiveQuestions = FilterQuestionsByType(allquestionsForPreview, QuestionType.Objective);
                result.PreviousQuestionId = objectiveQuestions?.ElementAtOrDefault(objectiveQuestions.Count - 1);
            }
            if (questionType == (int)QuestionType.Objective && result.NextQuestionId == null)
            {
                List <int> practicalQuestions = FilterQuestionsByType(allquestionsForPreview, QuestionType.Practical);
                result.NextQuestionId = practicalQuestions?.ElementAtOrDefault(0);
            }
            return(result);
        }
Exemplo n.º 5
0
        private TestDetailsViewModel PreviewTestSuiteQuestion(int?questionId, int?testSuiteId, int questionType)
        {
            var viewerEmailId = User.Identity.Name;
            var viewer        = _containerUserService.FindUserByEmail(viewerEmailId);
            var previewTest   = new PreviewTestBusinessModel {
                TestSuite = new TestSuite {
                    TestSuiteId = (int)testSuiteId
                }, ViewerId = viewer.ID
            };
            TestDetailsBusinessModel userTestDetails = _testSuiteService.GetTestDetailsByTestSuit(previewTest, questionId, questionType);
            var testDetails = _mappingService.Map <TestDetailsBusinessModel, TestDetailsViewModel>(userTestDetails);

            testDetails = testDetails ?? new ReviewerQuestionViewModel();
            return(testDetails);
        }
Exemplo n.º 6
0
        private List <int> GetQuestionsForPreviewTestSuite(PreviewTestBusinessModel previewTestBusinessModel)
        {
            var questionIds = new List <int>();
            var previewTest = new TempPreviewTest {
                TestSuiteId = previewTestBusinessModel.TestSuite.TestSuiteId, ViewerId = previewTestBusinessModel.ViewerId
            };
            var previewTestDetails = GetTempPreviewTestSuite(previewTest);

            if (previewTestDetails != null)
            {
                if (!string.IsNullOrWhiteSpace(previewTestDetails.QuestionIds))
                {
                    questionIds = previewTestDetails.QuestionIds.Split(',').Select(int.Parse).ToList();
                }
            }
            return(questionIds.OrderBy(ques => ques).ToList());
        }
Exemplo n.º 7
0
        public List <Question> GetPreview(PreviewTestBusinessModel previewTest)
        {
            var questionIds            = new List <int>();
            var tempPreviewTestDetails = new TempPreviewTest();
            var questions = GenerateQuestionSet(previewTest.TestSuite);

            if (questions.Any())
            {
                questions = questions.OrderBy(ques => ques.Id).ToList();
                questionIds.AddRange(questions.Select(question => question.Id));
                tempPreviewTestDetails.QuestionIds = string.Join(",", questionIds);
                tempPreviewTestDetails.ViewerId    = previewTest.ViewerId;
                tempPreviewTestDetails.CandidateId = previewTest.CandidateId;
                tempPreviewTestDetails.TestSuiteId = previewTest.TestSuite.TestSuiteId;
            }
            UpsertTempPreviewTest1(tempPreviewTestDetails);
            return(questions);
        }
Exemplo n.º 8
0
        public ActionResult PreViewQuestion(int testSuiteId)
        {
            var viewerEmailId          = User.Identity.Name;
            var viewer                 = _containerUserService.FindUserByEmail(viewerEmailId);
            int count                  = 0;
            var testSuiteViewQuesModel = new TestSuiteViewQuesModel();
            var testSuiteQuestionList  = new List <TestSuiteQuestion>();

            try
            {
                TestSuite testSuitDetails = _testSuiteService.GetTestSuitById(testSuiteId);
                var       previewTest     = new PreviewTestBusinessModel {
                    TestSuite = testSuitDetails, ViewerId = viewer.ID
                };
                if (testSuitDetails != null && testSuitDetails.Status == Convert.ToInt32(TestSuiteStatus.Ready))
                {
                    var questionList = _testSuiteService.GetPreview(previewTest);
                    foreach (var pQuestion in questionList)
                    {
                        count++;
                        testSuiteQuestionList.Add(new TestSuiteQuestion()
                        {
                            QuestionType        = pQuestion.QuestionType,
                            QuestionNumber      = count,
                            QuestionDescription = pQuestion.QuestionDescription,
                            OptionCount         = pQuestion.OptionCount,
                            Answer        = pQuestion.Answer,
                            CorrectAnswer = pQuestion.CorrectAnswer,
                            Id            = pQuestion.Id,
                            Marks         = pQuestion.Marks,
                            Option1       = pQuestion.Option1,
                            Option2       = pQuestion.Option2,
                            Option3       = pQuestion.Option3,
                            Option4       = pQuestion.Option4,
                            Option5       = pQuestion.Option5,
                            Option6       = pQuestion.Option6,
                            Option7       = pQuestion.Option7,
                            Option8       = pQuestion.Option8,
                        });
                    }

                    testSuiteViewQuesModel.TestSuiteQuestion = testSuiteQuestionList;
                    testSuiteViewQuesModel.TestSuiteName     = testSuitDetails.TestSuiteName;
                    testSuiteViewQuesModel.Duration          = testSuitDetails.Duration;
                    testSuiteViewQuesModel.ObjectiveCount    = questionList.Count(x => x.QuestionType == 1);
                    testSuiteViewQuesModel.PracticalCount    = questionList.Count(x => x.QuestionType == 2);
                    TestSuiteCandidateModel testSuiteCandidateModel = new TestSuiteCandidateModel
                    {
                        TestSuiteId    = testSuiteId,
                        PracticalCount = testSuiteViewQuesModel.PracticalCount,
                        ObjectiveCount = testSuiteViewQuesModel.ObjectiveCount,
                        Duration       = testSuiteViewQuesModel.Duration
                    };
                    testSuiteCandidateModel.NavigationDetails  = GetQuestionNavigationDetails(questionList);
                    testSuiteCandidateModel.TotalQuestionCount = testSuiteCandidateModel.PracticalCount + testSuiteCandidateModel.ObjectiveCount;
                    testSuiteCandidateModel.DurationInMin      = testSuiteCandidateModel.Duration;
                    return(View("PreviewQuestions", testSuiteCandidateModel));
                }
                else
                {
                    testSuiteViewQuesModel.ErrorMessage = "Test suite is not ready.";
                }
            }
            catch
            {
                testSuiteViewQuesModel.ErrorMessage = "Something went wrong! Please try later.";
            }

            return(View(testSuiteViewQuesModel));
        }