public static CandidateJobScoreViewModel ToViewModel(this CandidateJobScore candidateJobScore) { if (candidateJobScore == null) { return(null); } return(new CandidateJobScoreViewModel { CandidateId = candidateJobScore.Candidate.CandidateId, Name = candidateJobScore.Candidate.Name, Score = candidateJobScore.Score, SkillTags = candidateJobScore.Candidate.SkillTags }); }
public CandidateJobScore CalculateCandidateScore(Candidate candidate, Job job) { var result = new CandidateJobScore(candidate, job); var weightedSkillcandidate = CandidateSkillWeights.FirstOrDefault(x => x.Candidate.CandidateId == candidate.CandidateId); var weightedSkillJob = JobSkillWeights.FirstOrDefault(x => x.Job.JobId == job.JobId); if (weightedSkillcandidate != null && weightedSkillJob != null) { foreach (var requireSkill in weightedSkillJob.SkillWeights.Keys) { if (weightedSkillcandidate.SkillWeights.ContainsKey(requireSkill)) { result.Score += weightedSkillJob.SkillWeights[requireSkill] * weightedSkillcandidate.SkillWeights[requireSkill]; } } } return(result); }