public async Task <IEnumerable <VacancySummaryDTO> > GetVacanciesForCV(Guid CVId, int?page = 1, int?pageSize = 10) { CVforSearchDTO cv = (await _uow.CVs.GetCVsAsync(cv => cv.Id == CVId, pageSize, page)).FirstOrDefault(); var result = (await _uow.Vacancies.GetAllAsync()).Where(v => MatchVacancyCV.Matches(v, cv) > 0); return(_mapper.Map <IEnumerable <Vacancy>, IEnumerable <VacancySummaryDTO> >(result)); }
public static int Matches(Vacancy vacancy, CVforSearchDTO cv) { var reqSkills = from v in vacancy.SkillRequirements select v.Skill.Name; var cvSkills = from v in cv.SkillKnowledges select v.SkillName; var result = reqSkills.Count() == 0 ? cvSkills.Count() : cvSkills.Intersect(reqSkills).Count(); return(result); }