예제 #1
0
        public IResult GetCandidateById(Guid id)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var candidateViewModel = new CandidateViewModel();
                var getCandidate       = _candidateRepository.GetByID(id);
                var openingCandidate   = _candidateRepository.GetOpeningCandidate(getCandidate.CandidateId);
                candidateViewModel.OpeningId         = openingCandidate.Opening.OpeningId;
                candidateViewModel.OpeningTitle      = openingCandidate.Opening.Title;
                candidateViewModel.Qualification     = getCandidate.Qualification.QualificationId;
                candidateViewModel.QualificationName = getCandidate.Qualification.Name;
                candidateViewModel.OrganizationName  = getCandidate.Organisation.Name;
                var candidateDocument = new CandidateDocumentViewModel();
                candidateViewModel.CandidateDocument = (CandidateDocumentViewModel)candidateDocument.MapFromModel(getCandidate.CandidateDocuments.FirstOrDefault());
                result.Body = candidateViewModel.MapFromModel(getCandidate);
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Error;
            }
            return(result);
        }
        public ActionResult Create(CandidateDocumentViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var newDocument = new CandidateDocument
                {
                    CandidateId  = vm.CandidateId,
                    DocumentType = vm.DocumentType,
                    FileSize     = 0.0
                };

                if (vm.Document != null)
                {
                    var siteSettings      = _settingsService.GetSiteSettings();
                    var blobUploadService = new BlobUploadService(siteSettings.BlobSettings);
                    var blobPath          = blobUploadService.UploadRecruitDocument(vm.Document);
                    newDocument.DocumentPath = blobPath;
                    newDocument.FileName     = vm.Document.FileName;
                }

                _candidateDocumentRepository.Create(newDocument);
                _unitOfWork.Commit();

                return(RedirectToAction("Details", "Candidates", new { id = vm.CandidateId }));
            }

            return(View(vm));
        }
        private void GetCandidateDocumentDetails(CandidateDocumentViewModel candidateDocumentViewModel, IFormFile file)
        {
            candidateDocumentViewModel.DocumentName = file.FileName;
            var allowedExtensions = _configuration["ResumeExtension"].Split(',');
            var extension         = FileHelper.GetExtension(file, allowedExtensions);

            candidateDocumentViewModel.UploadedDocument = Guid.NewGuid().ToString() + extension;
        }
        public ActionResult Create(int candidateId)
        {
            var vm = new CandidateDocumentViewModel
            {
                CandidateId = candidateId
            };

            return(View(vm));
        }
예제 #5
0
        public IResult AddCandidate(CandidateViewModel candidateViewModel, CandidateDocumentViewModel candidateDocumentViewModel)
        {
            var result = new Result
            {
                Operation = Operation.Create,
                Status    = Status.Success
            };

            try
            {
                var candidateModel = new Candidates();
                candidateModel.MapFromViewModel(candidateViewModel, (ClaimsIdentity)_principal.Identity);
                candidateModel.QualificationId = candidateViewModel.Qualification;

                #region Insert OpeningCandidate
                var openingCandidate = new OpeningCandidates();
                openingCandidate.OpeningId = candidateViewModel.OpeningId;
                openingCandidate.Candidate = candidateModel;
                openingCandidate.MapAuditColumns((ClaimsIdentity)_principal.Identity);
                #endregion

                #region Insert Organization
                Organizations organization = null;
                if (candidateViewModel.OrganizationId != 0)
                {
                    candidateModel.OrganizationId = candidateViewModel.OrganizationId;
                }
                else
                {
                    organization = new Organizations
                    {
                        Name = candidateViewModel.OrganizationName
                    };
                    organization.MapAuditColumns((ClaimsIdentity)_principal.Identity);
                    candidateModel.Organisation = organization;
                }
                #endregion

                #region Insert Candidate Document
                var candidateDocumentModel = new CandidateDocuments();
                candidateDocumentModel.MapFromViewModel(candidateDocumentViewModel, (ClaimsIdentity)_principal.Identity);
                candidateModel.CandidateDocuments.Add(candidateDocumentModel);
                #endregion

                _candidateRepository.AddCandidate(candidateModel, openingCandidate);
                result.Body = candidateModel.CandidateId;
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Error;
            }
            return(result);
        }
        public IResult AddCandidate()
        {
            var candidateViewModel = JsonConvert.DeserializeObject <CandidateViewModel>(Request.Form["candidate"]);
            var file = Request.Form.Files["uploadFile"];
            var candidateDocumentViewModel = new CandidateDocumentViewModel();

            GetCandidateDocumentDetails(candidateDocumentViewModel, file);
            var addedCandidate = _candidateManagerService.AddCandidate(candidateViewModel, candidateDocumentViewModel);

            if (addedCandidate.Body != null)
            {
                var allowedExtensions = _configuration["ResumeExtension"].Split(',');
                FileHelper.SaveFile(file, candidateDocumentViewModel.UploadedDocument, allowedExtensions, _hostingEnvironment, "uploadFiles");
            }
            return(addedCandidate);
        }
예제 #7
0
        public IResult UpdateCandidate(CandidateViewModel candidateViewModel, CandidateDocumentViewModel candidateDocumentViewModel)
        {
            var result = new Result
            {
                Operation = Operation.Update,
                Status    = Status.Success
            };

            try
            {
                var candidateModel = _candidateRepository.GetByID(candidateViewModel.CandidateId);
                candidateModel.MapFromViewModel(candidateViewModel, (ClaimsIdentity)_principal.Identity);
                candidateModel.QualificationId = candidateViewModel.Qualification;

                #region Organization insert update
                Organizations organization = null;
                if (candidateModel.OrganizationId != candidateViewModel.OrganizationId)
                {
                    if (candidateViewModel.OrganizationId != 0)
                    {
                        candidateModel.OrganizationId = candidateViewModel.OrganizationId;
                    }
                    else
                    {
                        organization = new Organizations
                        {
                            Name = candidateViewModel.OrganizationName
                        };
                        organization.MapAuditColumns((ClaimsIdentity)_principal.Identity);
                        candidateModel.Organisation = organization;
                    }
                }
                #endregion

                #region OpeningCandidate Update
                var openingCandidateModel = _candidateRepository.GetOpeningCandidate(candidateViewModel.CandidateId);
                if ((openingCandidateModel != null) && (openingCandidateModel.Opening.OpeningId != candidateViewModel.OpeningId))
                {
                    openingCandidateModel.OpeningId = candidateViewModel.OpeningId;
                    openingCandidateModel.MapAuditColumns((ClaimsIdentity)_principal.Identity);
                }
                #endregion

                #region Candidate Document Insert Update
                var candidateDocumentModel = candidateModel.CandidateDocuments.FirstOrDefault();
                if (candidateDocumentViewModel != null)
                {
                    candidateDocumentModel.MapFromViewModel(candidateDocumentViewModel, (ClaimsIdentity)_principal.Identity);
                }
                candidateModel.CandidateDocuments.Add(candidateDocumentModel);
                #endregion

                _candidateRepository.UpdateCandidate(candidateModel, openingCandidateModel);
                result.Body = candidateModel.CandidateId;
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Error;
            }
            return(result);
        }