Exemplo n.º 1
0
        public async Task <JobPostCandidateViewModel> AddNewJobPostCandidate(JobPostCandidateViewModel model)
        {
            var mapped = _mapper.Map <JobPostCandidate>(model);
            await _jobPostCandidateRepository.Add(mapped);

            return(model);
        }
        public async Task <IActionResult> Index(CandidateViewModel model)
        {
            //checking if already applied for same job
            candidateList = await _candidatePageServices.getCandidates();

            try
            {
                List <CandidateViewModel> list = new List <CandidateViewModel>();
                list = candidateList.ToList();
                foreach (var item in list)
                {
                    var job_ID = _dbContext.JobPostCandidate.AsNoTracking().FirstOrDefault(x => x.candidate_Id == item.ID).job_Id;
                    if (item.email == model.email && model.jobpostID == job_ID)
                    {
                        TempData["msg1"] = model.email;
                        return(RedirectToAction("Index", "Home", new { s = TempData["msg1"] }));
                    }
                }


                //------------------------------------------------------------------------------------
                //receiving dropdown value of degree
                if (model.degree == "Select Degree")
                {
                    ModelState.AddModelError("", "Select Degree");
                }
                //getting data from database
                List <Degree> DegreeList = new List <Degree>();
                DegreeList = (from element in _dbContext.Degree select element).ToList();

                //inserting into dropdown list
                DegreeList.Insert(0, new Degree {
                    ID = 0, degree_name = "Select Degree"
                });

                //assigning degreelist to viewbag.listofdegree
                ViewBag.ListOfDegree = DegreeList;
                //------------------------------------------------------------------------------------


                //getting selected value for degree
                DegreeViewModel selectedDegree = await _degreePageServices.getDegreeById(model.selectedDegree);

                string degreename = selectedDegree.degree_name;


                DepartmentViewModel selectedDept = await _departmentPageservices.getDepartmentById(model.selectDept);

                string deptename = selectedDept.dept_name;

                model.degree = degreename + "(" + deptename + ")";


                //Resume details fetching
                //create a place in wwwroot for storing uploaded images
                var uploads = Path.Combine(_environment.WebRootPath, "Resume");
                if (model.File != null)
                {
                    using (var fileStream = new FileStream(Path.Combine(uploads, model.File.FileName), FileMode.Create))
                    {
                        await model.File.CopyToAsync(fileStream);
                    }
                    model.resume = model.File.FileName;
                }

                model.emailConfirmed = false;
                var latestRecord = await _candidatePageServices.AddNewCandidate(model);

                //add to jobpostcandidate
                JobPostCandidateViewModel newModel = new JobPostCandidateViewModel()
                {
                    job_Id       = model.jobpostID,
                    candidate_Id = latestRecord.ID
                };
                await _jobPostCandidatePage.AddNewJobPostCandidate(newModel);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(RedirectToAction("SendOTPToMail", model));
        }