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()); }
public async Task <IActionResult> AddSkill(SkillToAddDto skillToAdd) { var result = await _repo.AddSkill(skillToAdd); if (!result) { return(BadRequest("Failed to save skill")); } return(Ok(skillToAdd)); }