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);
        }