public async Task <IEnumerable <AlghorythmResponseServiceModel> > GetCVsByVacancy(Guid vacancyId) { var vacansy = await GetVacancyFromDBAsync(vacancyId); var qualifications = new List <Qualification>(await _qualificationService.GetAllAsync()); var cVs = new List <CVServiceModel>(await _cVService.GetAllAsync()); var skillTypes = new List <SkillType>(await _skillTypeService.GetAllAsync()); List <CVAlghorythmModel> algCVs = new List <CVAlghorythmModel>(); var knowledgeScaleSteps = new KnowledgeScaleStepsAlgorithmModel() { HardKnowledgeScaleStep = PERCENT_DIVIDER / skillTypes[0].SkillKnowledgeTypes.Count, SoftKnowledgeScaleStep = PERCENT_DIVIDER / skillTypes[1].SkillKnowledgeTypes.Count, LanguageKnowledgeScaleStep = PERCENT_DIVIDER / skillTypes[2].SkillKnowledgeTypes.Count, QualificationScaleStep = PERCENT_DIVIDER / qualifications.Count }; var skillTypeValues = new SkillTypeValuesAlgorithmModel() { SoftSkillsValue = skillTypes[1].Value, HardSkillsValue = skillTypes[0].Value, LanguageSkillsValue = skillTypes[2].Value }; _alghorythm = _alghorythmBuilder.GetScoreAlghorythm( _mapper.Map <SkillTypeValuesAlgorithmModel, SkillTypeValues>(skillTypeValues), _mapper.Map <KnowledgeScaleStepsAlgorithmModel, KnowledgeScaleSteps>(knowledgeScaleSteps)); for (int i = 0; i < cVs.Count; i++) { algCVs.Add(new CVAlghorythmModel()); algCVs.Last().Id = cVs[i].Id; algCVs.Last().Qualification = qualifications .FirstOrDefault(q => q.Id == cVs[i].QualificationId).Value; algCVs.Last().SkillKnowledges = new List <SkillKnowledgeAlghorythmModel>(); foreach (var sk in cVs[i].SkillKnowledges) { algCVs[i].SkillKnowledges.Add(new SkillKnowledgeAlghorythmModel() { KnowledgeLevel = sk.KnowledgeLevel .SkillKnowledgeTypes .Where(i => i.KnowledgeLevelId == sk.KnowledgeLevelId) .FirstOrDefault().Value, Expirience = sk.Experience.Value, Skill = new SkillAlghorythmModel() { Id = sk.SkillId, SubSkills = MapSubSkills(sk.Skill) } }); } } var alghResponse = new List <AlghorythmResponseServiceModel>(_mapper.Map <IEnumerable <IdAndRating> , IEnumerable <AlghorythmResponseServiceModel> >(_alghorythm.GetCVsRating(vacansy, algCVs))); return(FindCVTitle(cVs, alghResponse)); }