public IActionResult AddCandidate(CandidateAddEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var cand = candidateRepository.GetAll().Where(x => x.Email == model.Email).FirstOrDefault();
                    if (cand != null)
                    {
                        if (cand.Email == model.Email)
                        {
                            ModelState.AddModelError("", "Candidate with provided email address is already exists");
                        }
                        if (cand.Mobile == model.Mobile)
                        {
                            ModelState.AddModelError("", "Candidate with provided mobile number is already exists");
                        }
                        return(View(model));
                    }
                    Candidate candidate = new Candidate
                    {
                        Name           = model.Name,
                        Email          = model.Email,
                        DateOfBirth    = model.DateOfBirth,
                        Mobile         = model.Mobile,
                        CurrentCompany = model.CurrentCompany,
                        //   ExperienceId = model.ExperienceId,
                        ExperienceYear  = model.ExperienceYear,
                        ExperienceMonth = model.ExperienceMonth,
                        CreatedBy       = 1,
                        CreatedOn       = DateTime.Now,
                        IsActive        = true,
                        LastUpdatedBy   = 1,
                        LastUpdatedOn   = DateTime.Now,
                        PositionId      = model.PositionId,
                        CandidateStatus = 1
                    };

                    candidateRepository.Insert(candidate);
                }

                catch (Exception ex)
                {
                    logger.LogError($"Error while adding candidate: {ex.StackTrace}");
                    ViewBag.ErrorTitle   = $"Error adding candidate";
                    ViewBag.ErrorMessage = $"Error while adding new candidate named : {model.Name}";
                    return(View("Error"));
                }

                if (signInManager.IsSignedIn(User) && User.IsInRole("Admin"))
                {
                    return(RedirectToAction("Index", "Candidate"));
                }
                TempData["Success"] = "Registration Successful!";
                return(View("SubmitCandidateDetails"));
            }

            return(View(model));
        }
        public ViewResult AddCandidate()
        {
            CandidateAddEditViewModel model = new CandidateAddEditViewModel();

            try
            {
                var expList = expRepository.GetAll();
                var posList = posRepository.GetAll();
                //model.ExperienceList = expList.Select(r => new SelectListItem
                //{
                //    Text = r.ExperienceDescription,
                //    Value = r.ExperienceId.ToString()
                //}).ToList();
                model.ExperienceYearList = StaticData.Year.Select(year => new SelectListItem
                {
                    Text  = year.ToString(),
                    Value = year.ToString()
                }).ToList();
                model.ExperienceMonthList = StaticData.Month.Select(month => new SelectListItem
                {
                    Text  = month.ToString(),
                    Value = month.ToString()
                }).ToList();
                model.PositionList = posList.Select(r => new SelectListItem
                {
                    Text  = r.PositionDescription,
                    Value = r.Id.ToString()
                }).ToList();
            }
            catch (Exception ex)
            {
                logger.LogError($"Error while showing candidate registration page: {ex.StackTrace}");
                ViewBag.ErrorTitle   = $"Error Occurred";
                ViewBag.ErrorMessage = $"Error occurred while showing candidate registration page";
                return(View("Error"));
            }
            return(View(model));
        }