public async Task <IActionResult> Post([FromBody] SkillEditViewModel vm) { var skillSet = dbContext.Set <Skill>(); var existing = await skillSet.FirstOrDefaultAsync(s => s.Name == vm.Name); if (existing != null) { ModelState.AddModelError(nameof(SkillEditViewModel.Name), "A skill with the same name already exists."); } if (ModelState.IsValid) { var skill = new Skill(); vm.ApplyTo(skill); skillSet.Add(skill); await dbContext.SaveChangesAsync(); return(CreatedAtRoute("GetSkillById", new { id = skill.Id }, new SkillListViewModel(skill))); } else { return(BadRequest(ModelState)); } }
public async Task <IActionResult> Put(int id, [FromBody] SkillEditViewModel vm) { var skill = await dbContext.Set <Skill>().FindAsync(id); if (skill == null) { return(NotFound()); } if (ModelState.IsValid) { vm.ApplyTo(skill); await dbContext.SaveChangesAsync(); return(AcceptedAtRoute("GetSkillById", new { id = skill.Id }, new SkillListViewModel(skill))); } else { return(BadRequest(ModelState)); } }