Beispiel #1
0
        public async Task UpdateAsync(CVCreationDTO cv)
        {
            var entity = _mapper.Map <CVCreationDTO, CV>(cv);

            _context.Entry(entity).State = EntityState.Modified;

            await _context.SaveChangesAsync();
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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);
        }