public async Task <ICollection <Vacancy> > AutoVacanciesByCandidate(int candidateId, int coefficient, int skip, int amount) { var candidate = await Task.Run(() => candidateRepository.Read(candidateId)); if (candidate.CandidatePrimarySkill == null) { return(new List <Vacancy>()); } var techSkills = await Task.Run(() => techSkillRepository.Read(candidate.CandidatePrimarySkill.TechSkill)); var vacancies = new List <Vacancy>(); techSkills.VacancyPrimarySkills.ForEach(prSkills => vacancies.Add(prSkills.Vacancy1)); //foreach (var v in vacancies) //{ // Debug.WriteLine(v.Id + " " + AutoSelectFunction.CompareByCandidate(candidate, v, coefficient)); //} var ordered = vacancies.OrderBy(x => AutoSelectFunction.CompareByCandidate(candidate, x, coefficient)); //foreach (var v in ordered) //{ // Debug.WriteLine(v.Id); //} return(ordered.Skip(skip).Take(amount).ToList()); }
public async Task <ICollection <Candidate> > AutoCandidatesByVacancy(int vacancyId, int skip, int take, int coeficPrimary) { var vacancy = await Task.Run(() => vacancyRepository.Read(vacancyId)); var techSkill = vacancy.VacancyPrimarySkill?.TechSkill1; if (techSkill == null) { return(new List <Candidate>()); } var candidates = techSkill.CandidatePrimarySkills.Select(x => x.Candidate1); var order = candidates.OrderBy(x => AutoSelectFunction.CompareByVacancy(vacancy, x, coeficPrimary)); var result = order.Skip(skip).Take(take).ToList(); return(result); }