Пример #1
0
        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"));
        }
Пример #2
0
        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());
        }
Пример #3
0
 public void DeleteUserTestSuite(UserTestSuite UserTestSuite)
 {
     if (UserTestSuite.UserApplicationId > 0)
     {
         _context.Delete(UserTestSuite);
     }
 }
Пример #4
0
        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"));
        }
Пример #5
0
        public JsonResult AddMoreTime(int count, int userTestSuiteId)
        {
            count = count + 1;
            UserTestSuite userTestSuite = _testSuiteService.GetUserTestSuiteId(userTestSuiteId);

            userTestSuite.ExtraCount = count;
            _testSuiteService.UpdateUserTestSuite(userTestSuite);
            return(Json(count));
        }
Пример #6
0
 public void UpdateUserTestSuite(UserTestSuite UserTestSuite)
 {
     if (UserTestSuite.UserApplicationId > 0)
     {
         _context.Update(UserTestSuite);
         _context.AttachAndMakeStateModified(UserTestSuite);
         _context.SaveChanges();
     }
 }
Пример #7
0
        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));
        }
Пример #8
0
        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());
        }
Пример #9
0
        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));
        }
Пример #10
0
        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));
        }
Пример #11
0
        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));
        }
Пример #12
0
        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));
        }
Пример #13
0
        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));
            }
        }
Пример #14
0
 public int AddUserTestSuite(UserTestSuite UserTestSuite)
 {
     _context.Add(UserTestSuite);
     return(UserTestSuite.UserTestSuiteId);
 }