public ActionResult OnSubmitTest(int testSuiteId, int userTestSuiteId, int?userTestDetailId, int userId, string answer) { // Update last question answer of test. answer = HttpUtility.HtmlDecode(answer); _userService.UpdateUserApplicationTestDetails(userId); // Update total time utilization for test back to UserTestSuite. TestSuite suite = _testSuiteService.GetTestSuitById(testSuiteId); UserTestSuite testSuit = _testSuiteService.GetUserTestSuiteId(userTestSuiteId); testSuit.Duration = suite.Duration + (testSuit.ExtraCount * 10); testSuit.StatusId = Convert.ToInt32(CandidateStatus.TestSubmitted); _testSuiteService.UpdateUserTestSuite(testSuit); // Calculate marks on test submit. CalculateMarks(userTestSuiteId, userTestDetailId, answer); List <string> Receipient = new List <string>() { "Admin", "Panel" }; var users = _userService.GetUserApplicationDetailsById(userId); if (users != null) { var userDetails = _userService.GetUserById(users.UserId); // _commonController.SendMailByRoleName("Online Test Submitted For " + userDetails.FirstName + " " + userDetails.LastName + "", "CandidateTestSubmitted.cshtml", Receipient, userDetails.FirstName + " " + userDetails.LastName); } return(RedirectToAction("LogOff", "CandidateAccount")); }
public ActionResult Welcome() { if (!ModelState.IsValid) { return(RedirectToAction("LogOff", "CandidateAccount")); } var userEmail = User.Identity.Name.Trim(); if (!string.IsNullOrWhiteSpace(userEmail)) { var user = _userService.GetUserByEmail(userEmail); if (user == null) { return(RedirectToAction("LogOff", "CandidateAccount")); } else if (user.CandidateStatus == CandidateStatus.TestSubmitted.ToString()) { ViewBag.Status = 1; ViewBag.Msg = "You have already submitted your test."; return(View("Welcome", new TestSuiteCandidateModel())); } ViewBag.CandidateName = user.FirstName; UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteByUserApplicationId(user.UserApplicationId); if (userTestSuite == null) { ViewBag.Status = 1; ViewBag.Msg = "No test is assigned for you, kindly contact admin."; return(View("Welcome", new TestSuiteCandidateModel())); } ViewBag.ProfilePhotoPath = user.ProfilePhotoFilePath; ViewBag.Status = 0; } return(View()); }
public void DeleteUserTestSuite(UserTestSuite UserTestSuite) { if (UserTestSuite.UserApplicationId > 0) { _context.Delete(UserTestSuite); } }
public async Task <ActionResult> SaveCandidateAndAssignTest(AssignTestViewModel assignTestViewModel) { var assignTestBusinessModel = _mappingService.Map <AssignTestViewModel, AssignTestBusinessModel>(assignTestViewModel); if (assignTestBusinessModel.CandidatesJson != null && assignTestBusinessModel.CandidatesJson.Any()) { foreach (var candidateJson in assignTestBusinessModel.CandidatesJson) { var jobViteCandidate = JsonConvert.DeserializeObject <JobViteCandidateBusinessModel>(candidateJson); var user = new UserViewModel { FirstName = jobViteCandidate.FirstName, LastName = jobViteCandidate.LastName, Email = jobViteCandidate.Email, Role = RoleName.Candidate.ToString(), DOB = DateTime.Now.ToString() }; user = await CreateUserMethod(user); //Need to check if USer is created successfully var organizationUserDomainModel = _mappingService.Map <UserViewModel, UserBusinessModel>(user); organizationUserDomainModel.ApplicationDate = DateTime.Now; organizationUserDomainModel.CreatedDate = DateTime.Now; organizationUserDomainModel.IsDeleted = false; var userId = _userService.Add(organizationUserDomainModel); user.UserApplicationId = _userService.GetUserLastestApplicationId(userId); TempData["Success"] = "Candidate created successfully."; //Send Candidate creation mail to Admin and Recruiter List <string> Receipient = new List <string>() { "Admin" }; _commonController.SendMailByRoleName("Candidate Created Successfully", "CandidateCreated.cshtml", Receipient, user.FirstName + " " + user.LastName); //Assign Test Suite To User var testSuiteDetails = _testSuiteService.GetTestSuiteDetails().Where(model => model.TestSuiteId == assignTestBusinessModel.TestSuiteId && model.IsDeleted == false).SingleOrDefault(); UserTestSuite userTestSuite; userTestSuite = new UserTestSuite(); userTestSuite.UserApplicationId = Convert.ToInt32(user.UserApplicationId); userTestSuite.TestSuiteId = assignTestBusinessModel.TestSuiteId; _testSuiteService.AssignSuite(userTestSuite, testSuiteDetails); var selectUser = _userService.GetUserDetails().Where(model => model.UserApplicationId == Convert.ToInt32(user.UserApplicationId)).FirstOrDefault(); selectUser.TestStatus = Convert.ToString(CandidateStatus.TestAssigned); selectUser.CandidateStatus = Convert.ToString(CandidateStatus.TestAssigned); _userService.Update(selectUser); List <string> receipient = new List <string>() { "Admin", "Panel" }; var mailsubject = "Test Assigned For " + selectUser.FirstName + " " + selectUser.LastName + " Successfully"; _commonController.SendMailByRoleName(mailsubject, "CandidateTestAssigned.cshtml", receipient, selectUser.FirstName + " " + selectUser.LastName); } } return(Content("success")); }
public JsonResult AddMoreTime(int count, int userTestSuiteId) { count = count + 1; UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteId(userTestSuiteId); userTestSuite.ExtraCount = count; _testSuiteService.UpdateUserTestSuite(userTestSuite); return(Json(count)); }
public void UpdateUserTestSuite(UserTestSuite UserTestSuite) { if (UserTestSuite.UserApplicationId > 0) { _context.Update(UserTestSuite); _context.AttachAndMakeStateModified(UserTestSuite); _context.SaveChanges(); } }
public JsonResult UpdateTimeCounter(int time, int userTestSuiteId) { UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteId(userTestSuiteId); if (userTestSuite != null) { int remainingTime = time / 60; userTestSuite.RemainingTime = remainingTime; _testSuiteService.UpdateUserTestSuite(userTestSuite); } return(Json(1)); }
public ActionResult ReviewTest(int UserApplicationId) { if (!ModelState.IsValid) { return(RedirectToAction("LogOff", "CandidateAccount")); } var user = _userService.GetUserByUserApplicationId(UserApplicationId); if (user == null) { ViewBag.Status = 1; ViewBag.Msg = "User not found for online test, Kindly contact admin."; return(View("Welcome")); } UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteByUserApplicationId(UserApplicationId); if (userTestSuite == null) { ViewBag.Status = 1; ViewBag.Msg = "Test suite is not assigned for you, Kindly contact admin."; return(View("Welcome")); } TestSuiteCandidateModel testSuiteCandidateModel = _mappingService.Map <UserTestSuite, TestSuiteCandidateModel>(userTestSuite); var candidateInfoBusinessModel = _userService.GetCandidateInfo(user); testSuiteCandidateModel.ProfilePhotoFilePath = user.ProfilePhotoFilePath; testSuiteCandidateModel.CandidateInfo = _mappingService.Map <CandidateInfoBusinessModel, CandidateInfoViewModel>(candidateInfoBusinessModel); testSuiteCandidateModel.NavigationDetails = GetNavigationDetails(testSuiteCandidateModel.UserTestSuiteId); testSuiteCandidateModel.TotalQuestionCount = testSuiteCandidateModel.PracticalCount + testSuiteCandidateModel.ObjectiveCount; testSuiteCandidateModel.DurationInMin = testSuiteCandidateModel.Duration; testSuiteCandidateModel.TestSummary = GetTestSummary(testSuiteCandidateModel.UserTestSuiteId); testSuiteCandidateModel.UserId = user.UserId; CandidateStatus status; if (Enum.TryParse(user.CandidateStatus, out status)) { if (user.CandidateStatus == CandidateStatus.TestSubmitted.ToString()) { var userRole = MvcApplication.getCurrentUserRoles(); if (userRole.Contains(RoleName.Panel.ToString())) { user.CandidateStatus = CandidateStatus.UnderEvaluation.ToString(); _userService.Update(user); } } testSuiteCandidateModel.CandidateStatus = status; } return(View(testSuiteCandidateModel)); return(View()); }
public ActionResult LoadTestSummaryView(int userId, int UserTestSuiteId) { var user = _userService.GetUserById(userId); UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteByUserApplicationId(user.UserApplicationId); TestSuiteCandidateModel testSuiteCandidateModel = _mappingService.Map <UserTestSuite, TestSuiteCandidateModel>(userTestSuite); var candidateInfoBusinessModel = _userService.GetCandidateInfo(user); testSuiteCandidateModel.CandidateInfo = _mappingService.Map <CandidateInfoBusinessModel, CandidateInfoViewModel>(candidateInfoBusinessModel); testSuiteCandidateModel.NavigationDetails = GetNavigationDetails(testSuiteCandidateModel.UserTestSuiteId); testSuiteCandidateModel.TotalQuestionCount = testSuiteCandidateModel.PracticalCount + testSuiteCandidateModel.ObjectiveCount; testSuiteCandidateModel.DurationInMin = testSuiteCandidateModel.Duration; testSuiteCandidateModel.TestSummary = GetTestSummary(testSuiteCandidateModel.UserTestSuiteId); testSuiteCandidateModel.UserId = user.UserId; return(PartialView("_reviewerTestSummaryAndCandidateDetails", testSuiteCandidateModel)); }
public int AssignSuite(UserTestSuite userTestSuite, TestSuite testSuite) { var testSuiteDetails = new List <UserTestDetails>(); UserTestDetails testSuiteDetail; var questions = GenerateQuestionSet(testSuite); foreach (var question in questions) { testSuiteDetail = new UserTestDetails(); testSuiteDetail.QuestionId = question.Id; testSuiteDetails.Add(testSuiteDetail); } userTestSuite.UserTestDetails = testSuiteDetails; userTestSuite.ObjectiveCount = questions.Count(x => x.QuestionType == 1); userTestSuite.PracticalCount = questions.Count(x => x.QuestionType == 2); userTestSuite.MaxScore = questions.Sum(x => x.Marks); userTestSuite.Duration = testSuite.Duration; userTestSuite.StatusId = Convert.ToInt32(CandidateStatus.TestAssigned); return(AddUserTestSuite(userTestSuite)); }
public ActionResult OnlineTest() { if (!ModelState.IsValid) { return(RedirectToAction("LogOff", "CandidateAccount")); } var userEmail = User.Identity.Name.Trim(); var user = _userService.GetUserByEmail(userEmail); if (user == null) { ViewBag.Status = 1; ViewBag.Msg = "User not found for online test, kindly contact admin."; return(View("Welcome", new TestSuiteCandidateModel())); } UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteByUserApplicationId(user.UserApplicationId); if (userTestSuite == null) { ViewBag.Status = 1; ViewBag.Msg = "No test is assigned for you, kindly contact admin."; return(View("Welcome", new TestSuiteCandidateModel())); } else if (user.CandidateStatus != CandidateStatus.TestAssigned.ToString()) { ViewBag.Status = 1; ViewBag.Msg = "You have already submitted your test."; return(View("Welcome", new TestSuiteCandidateModel())); } TestSuiteCandidateModel testSuiteCandidateModel = _mappingService.Map <UserTestSuite, TestSuiteCandidateModel>(userTestSuite); var candidateInfoBusinessModel = _userService.GetCandidateInfo(user); testSuiteCandidateModel.CandidateInfo = _mappingService.Map <CandidateInfoBusinessModel, CandidateInfoViewModel>(candidateInfoBusinessModel); testSuiteCandidateModel.ProfilePhotoFilePath = user.ProfilePhotoFilePath; testSuiteCandidateModel.NavigationDetails = GetNavigationDetails(testSuiteCandidateModel.UserTestSuiteId); testSuiteCandidateModel.TotalQuestionCount = testSuiteCandidateModel.PracticalCount + testSuiteCandidateModel.ObjectiveCount; testSuiteCandidateModel.DurationInMin = testSuiteCandidateModel.RemainingTime > 0 ? testSuiteCandidateModel.RemainingTime : testSuiteCandidateModel.Duration; testSuiteCandidateModel.UserId = user.UserApplicationId; return(View(testSuiteCandidateModel)); }
public ActionResult TestSuiteAndCandidateDetails() { var userEmail = User.Identity.Name.Trim(); var user = _userService.GetUserByEmail(userEmail); if (user == null) { return(RedirectToAction("LogOff", "CandidateAccount")); } UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteByUserApplicationId(user.UserApplicationId); if (userTestSuite != null) { if (userTestSuite.RemainingTime > 0) { userTestSuite.Duration = userTestSuite.RemainingTime; } else { var testSuiteDetails = _testSuiteService.GetTestSuiteDetails().SingleOrDefault(model => model.TestSuiteId == userTestSuite.TestSuiteId && !model.IsDeleted); _testSuiteService.AssignSuite(userTestSuite, testSuiteDetails); } } TestSuiteCandidateModel testSuiteCandidateModel = _mappingService.Map <UserTestSuite, TestSuiteCandidateModel>(userTestSuite); testSuiteCandidateModel = testSuiteCandidateModel ?? new TestSuiteCandidateModel(); var candidateInfoBusinessModel = _userService.GetCandidateInfo(user); testSuiteCandidateModel.CandidateInfo = _mappingService.Map <CandidateInfoBusinessModel, CandidateInfoViewModel>(candidateInfoBusinessModel); testSuiteCandidateModel.NavigationDetails = GetNavigationDetails(testSuiteCandidateModel.UserTestSuiteId); testSuiteCandidateModel.DurationInMin = testSuiteCandidateModel.RemainingTime > 0 ? testSuiteCandidateModel.RemainingTime : testSuiteCandidateModel.Duration; return(PartialView("_testSuiteAndCandidateDetails", testSuiteCandidateModel)); }
public ActionResult AssignTest(string users, int testSuiteId) { string mailsubject = ""; var testSuiteDetails = _testSuiteService.GetTestSuiteDetails().Where(model => model.TestSuiteId == testSuiteId && model.IsDeleted == false).SingleOrDefault(); var alreadyAssignedTestSuites = _testSuiteService.GetAllUserIdsForTestSuite(testSuiteId); UserTestSuite userTestSuite; if (!string.IsNullOrWhiteSpace(users)) { foreach (var item in users.Split(',')) { userTestSuite = new UserTestSuite(); userTestSuite.UserApplicationId = Convert.ToInt32(item); if (!alreadyAssignedTestSuites.Contains(userTestSuite.UserApplicationId)) { userTestSuite.TestSuiteId = testSuiteId; _testSuiteService.AssignSuite(userTestSuite, testSuiteDetails); var selectUser = _userService.GetUserDetails().Where(model => model.UserApplicationId == Convert.ToInt32(item)).FirstOrDefault(); selectUser.TestStatus = Convert.ToString(CandidateStatus.TestAssigned); selectUser.CandidateStatus = Convert.ToString(CandidateStatus.TestAssigned); _userService.Update(selectUser); List <string> receipient = new List <string>() { "Admin", "Panel" }; mailsubject = "Test Assigned For " + selectUser.FirstName + " " + selectUser.LastName + " Successfully"; _commonController.SendMailByRoleName(mailsubject, "CandidateTestAssigned.cshtml", receipient, selectUser.FirstName + " " + selectUser.LastName); } } return(Json(1)); } else { return(Json(-1)); } }
public int AddUserTestSuite(UserTestSuite UserTestSuite) { _context.Add(UserTestSuite); return(UserTestSuite.UserTestSuiteId); }