EmployeesController.cs
using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; using System.Net; using System.Threading.Tasks; using System.Web.Http; using System.Web.Http.Description; using WebApplication2.Models; namespace WebApplication2.Controllers { public class EmployeesController : ApiController { private MvcTestDbEntities db = new MvcTestDbEntities(); // GET: api/Employees /// <summary> /// 取回所有 Employee 的資料明細 /// </summary> /// <returns>IQueryable<employee></employee></returns> public IQueryable<employee> GetEmployee() { return db.Employee; } // GET: api/Employees/5 /// <summary> /// 取回特定 id 的 Employee 資料 /// </summary> /// <param name="id" />Employee ID /// <returns>typeof(Employee)</returns> [ResponseType(typeof(Employee))] public async Task<ihttpactionresult> GetEmployee(string id) { Employee employee = await db.Employee.FindAsync(id); if (employee == null) { return NotFound(); } return Ok(employee); } // PUT: api/Employees/5 /// <summary> /// 變更 Employee 資料 /// </summary> /// <param name="id" />Employee ID /// <param name="employee" />Employee /// <returns>typeof(void)</returns> [ResponseType(typeof(void))] public async Task<ihttpactionresult> PutEmployee(string id, Employee employee) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != employee.emp_no) { return BadRequest(); } db.Entry(employee).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EmployeeExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); } // POST: api/Employees /// <summary> /// 新增 Employee 資料 /// </summary> /// <param name="employee" />Employee /// <returns>typeof(Employee)</returns> [ResponseType(typeof(Employee))] public async Task<ihttpactionresult> PostEmployee(Employee employee) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Employee.Add(employee); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (EmployeeExists(employee.emp_no)) { return Conflict(); } else { throw; } } return CreatedAtRoute("DefaultApi", new { id = employee.emp_no }, employee); } // DELETE: api/Employees/5 /// <summary> /// 刪除 Employee 資料 /// </summary> /// <param name="id" />Employee ID /// <returns>typeof(Employee)</returns> [ResponseType(typeof(Employee))] public async Task<ihttpactionresult> DeleteEmployee(string id) { Employee employee = await db.Employee.FindAsync(id); if (employee == null) { return NotFound(); } db.Employee.Remove(employee); await db.SaveChangesAsync(); return Ok(employee); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } private bool EmployeeExists(string id) { return db.Employee.Count(e => e.emp_no == id) > 0; } } }