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)); }
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); }
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)); }
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); }
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); }
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()); }
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); }
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)); }