public IActionResult UpdateSkill(Guid skillId, SkillForManipulationModel skill)
        {
            var skillFromRepo = _skillsRepository.GetSkill(skillId);

            if (skillFromRepo == null)
            {
                var skillToAdd = _mapper.Map <Entities.Skill>(skill);
                skillToAdd.Id = skillId;

                _skillsRepository.AddSkill(skillToAdd);

                _skillsRepository.Save();

                var skillToReturn = _mapper.Map <SkillModel>(skillToAdd);

                return(CreatedAtRoute("GetSkill",
                                      new { skillId = skillToReturn.Id },
                                      skillToReturn));
            }

            // map the entity to a SkillForManipulationModel
            // apply the updated field values to that dto
            // map the SkillForManipulationModel back to an entity
            _mapper.Map(skill, skillFromRepo);

            _skillsRepository.UpdateSkill(skillFromRepo);

            _skillsRepository.Save();
            return(NoContent());
        }
        public ActionResult <SkillModel> CreateSkill(SkillForManipulationModel skill)
        {
            var skillEntity = _mapper.Map <Entities.Skill>(skill);

            _skillsRepository.AddSkill(skillEntity);
            _skillsRepository.Save();

            var skillToReturn = _mapper.Map <SkillModel>(skillEntity);

            return(CreatedAtRoute("GetSkill",
                                  new { skillId = skillToReturn.Id },
                                  skillToReturn));
        }