public async Task UpdateAsync(CVCreationDTO cv) { var entity = _mapper.Map <CVCreationDTO, CV>(cv); _context.Entry(entity).State = EntityState.Modified; await _context.SaveChangesAsync(); }
public async Task <CVDTO> AddAsync(CVCreationDTO cvDto) { var skillKnowledges = cvDto.SkillKnowledges; var skillsId = skillKnowledges.Select(s => s.SkillId); var experiencesId = skillKnowledges.Select(s => s.ExperienceId); var knowledgesLevelsId = skillKnowledges.Select(s => s.KnowledgeLevelId); var technologyId = cvDto.TechnologyId; var qualificationId = cvDto.QualificationId; var skills = await _context.Skills .Where(s => skillsId.Contains(s.Id)).ToListAsync(); var experiences = await _context.Experiences .Where(e => experiencesId.Contains(e.Id)).ToListAsync(); var knowledgeLevels = await _context.KnowledgeLevels .Where(k => knowledgesLevelsId.Contains(k.Id)).ToListAsync(); var technology = await _context.Technologies.FirstOrDefaultAsync(t => t.Id == technologyId); var qualification = await _context.Qualifications.FirstOrDefaultAsync(q => q.Id == qualificationId); CV cv = _mapper.Map <CVCreationDTO, CV>(cvDto); cv.Qualification = qualification; cv.Technology = technology; cv.SkillKnowledges = new Collection <SkillKnowledge>(); for (int i = 0; i < skillKnowledges.Count; i++) { cv.SkillKnowledges.Add(new SkillKnowledge() { Skill = skills[i], Experience = experiences[i], KnowledgeLevel = knowledgeLevels[i] }); } await _context.CVs.AddAsync(cv); await _context.SaveChangesAsync(); return(_mapper.Map <CV, CVDTO>(cv)); }
public async Task <CVServiceModel> AddAsync(CVCreationServiceModel cvServiceModel) { Guid?userId = cvServiceModel.UserId; var educationsToAdd = _mapper.Map < ICollection <EducationWithDetailsServiceModel>, ICollection <EducationWithDetailsDTO> > (cvServiceModel.Educations); if (userId == null) { UserFullInfoDTO userToAdd = _mapper.Map < UserCreationServiceModel, UserFullInfoDTO> (cvServiceModel.User); userToAdd.Educations = educationsToAdd; var createdUser = await _uow.Users.AddAsync(userToAdd); userId = createdUser.Id; cvServiceModel.UserId = userId; } else // check if user has educations { var addedEducations = await _uow.Users.AddEducationsNoExistAsync(educationsToAdd, (Guid)userId); educationsToAdd = _mapper.Map <ICollection <Education>, ICollection <EducationWithDetailsDTO> >(addedEducations); } CVCreationDTO cv = _mapper.Map <CVCreationServiceModel, CVCreationDTO>(cvServiceModel); CVDTO createdCV = await _uow.CVs.AddAsync(cv); createdCV.Educations = educationsToAdd; await _uow.CVs.LinkUserToCV(createdCV.Id, (Guid)userId); CVServiceModel result = _mapper.Map <CVDTO, CVServiceModel>(createdCV); return(result); }