Example #1
0
        public async Task <bool> AddSkill(SkillToAddDto skillToAdd)
        {
            var skill = await _context.Skills.FirstOrDefaultAsync(s => s.SkillName == skillToAdd.SkillName);

            if (skill == null)
            {
                var newSkill = new Skill();
                newSkill.SkillName = skillToAdd.SkillName;
                this.Add <Skill>(newSkill);
                await SaveAll();

                skill = await _context.Skills.FirstOrDefaultAsync(s => s.SkillName == skillToAdd.SkillName);
            }

            var userSkill = await _context.UserSkills.FirstOrDefaultAsync(us => us.UserId == skillToAdd.UserId && us.SkillId == skill.SkillId);

            if (userSkill != null)
            {
                return(false);
            }
            var newUserSkill = new UserSkill();

            newUserSkill.SkillId = skill.SkillId;
            newUserSkill.UserId  = skillToAdd.UserId;
            newUserSkill.Score   = skillToAdd.SkillScore;

            this.Add <UserSkill>(newUserSkill);

            return(await this.SaveAll());
        }
Example #2
0
        public async Task <IActionResult> AddSkill(SkillToAddDto skillToAdd)
        {
            var result = await _repo.AddSkill(skillToAdd);

            if (!result)
            {
                return(BadRequest("Failed to save skill"));
            }

            return(Ok(skillToAdd));
        }