public IHttpActionResult PostSalary(SalaryViewModel newSalary) { if (!ModelState.IsValid) { return BadRequest(ModelState); } Salary salary = Mapper.Map<SalaryViewModel, Salary>(newSalary); var person = db.People.OfType<Employee>().FirstOrDefault(p => p.Id == newSalary.EmployeeId); salary.Employee = person; db.Salaries.Add(salary); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = salary.Id }, new { data = salary }); }
public IHttpActionResult PutSalary(int id, SalaryViewModel existingSalary) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != existingSalary.Id) { return BadRequest(); } Salary salary = Mapper.Map<SalaryViewModel, Salary>(existingSalary); var person = db.People.OfType<Employee>().FirstOrDefault(p => p.Id == salary.EmployeeId); salary.Employee = person; db.Entry(salary).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!SalaryExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }