Esempio n. 1
0
        public void Update(UpdateCandidateContract contract)
        {
            _log.LogInformation($"Validating contract {contract.Name}");
            ValidateContract(contract);

            _log.LogInformation($"Mapping contract {contract.Name}");
            var candidate = _mapper.Map <Candidate>(contract);

            var currentProcesses = _processRepository.Query().Where(p => p.CandidateId == candidate.Id && p.Status != Model.Enum.ProcessStatus.Hired);

            foreach (var process in currentProcesses)
            {
                process.Status = Model.Enum.ProcessStatus.Recall;
                _processRepository.Update(process);
            }

            this.AddRecruiterToCandidate(candidate, contract.Recruiter.Id);
            this.AddOfficeToCandidate(candidate, contract.PreferredOfficeId);
            this.AddCommunityToCandidate(candidate, contract.Community.Id);
            this.AddCandidateProfileToCandidate(candidate, contract.Profile.Id);

            var updatedCandidate = _candidateRepository.Update(candidate);

            _log.LogInformation($"Complete for {contract.Name}");
            _unitOfWork.Complete();
        }
Esempio n. 2
0
 private void ValidateContract(UpdateCandidateContract contract)
 {
     try
     {
         _updateCandidateContractValidator.ValidateAndThrow(contract,
                                                            $"{ValidatorConstants.RULESET_DEFAULT}");
     }
     catch (ValidationException ex)
     {
         throw new CreateContractInvalidException(ex.ToListOfMessages());
     }
 }